我试图从'MySql'中获取数据,其中$path值与使用PHP的数据库中的任何值匹配,但当我使用带有'%%'的LIKE时,查询失败,但当我使用不带百分比'%%'的LIKE时,它工作正常。
我已经尝试直接在MySQL Workbench中执行此查询,效果非常好。
有人知道为什么它不起作用吗?
$sourceType = 'object';
$sourceId = 189;
$path = 'test'; //int or string value
SELECT d.targetid as id, d.sourcetype as type, CONCAT(o.o_path, o.o_key) as path
FROM dependencies d
INNER JOIN objects o ON o.o_id = d.targetid AND d.targettype= 'object'
WHERE d.sourcetype = '" . $sourceType. "' AND d.sourceid = " . $sourceId . " AND CONCAT(o.o_path, o.o_key) LIKE CONCAT('%', $path, '%');
我用这种方法试过球棒也不管用:LIKE '%" . $path . "%';
仅当我用途:REGEXP '".$path."'
,它可以工作,但它有大小写敏感值的问题,有时不能提取所有数据。例如,如果有4行包含“test”,它只得到3行。
1条答案
按热度按时间chy5wohz1#
我希望你做得很好。我已经检查了你的代码,并重新组织了一点,试图解决你遇到的问题。你可以尝试一下,让我知道它是否适合你。