对于给定的查询,
select * from contacts where name like "%$name%"mysql是否优化查询以排除变量$name为空时的条件?
当$name为空字符串时,查询将执行为
select * from contacts或
select * from contacts where name like "%%"发布于 2016-06-13 13:44:30
正如Alex在评论中提到的,MySQL不会做任何事情来优化类似的查询。
如果您的行中有空值,查询将不会返回结果集中的那些行,这说明了每一行都有一个检查。正如建议的那样,如果搜索值为空,最好检查代码并跳过like子句。
发布于 2016-06-13 13:36:03
不,
在$name为空的情况下,使用PHP条件可以完全跳过查询。
https://stackoverflow.com/questions/37791131
复制相似问题