我有一个应用程序,在其查询之一中具有以下WHERE子句。
WHERE objId = 5 AND ( field1 like '%%' OR field2 like '%%' OR field3 like '%%')
使用MySQL的
EXPLAIN
函数,似乎并没有寻找比必要更多的行(幸运的是,objId
上的索引过滤掉了很多行),但是检查字段是否像? 最佳答案
我的猜测是,生成此SQL的脚本在%
之间具有一些变量,但是它们为空,因此有输出%%
。
只是:
$var = '';
$sql = "... field LIKE '%" . $var . "%' OR ...";