首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有%%的Mysql性能

问具有%%的Mysql性能
EN

Stack Overflow用户
提问于 2016-06-13 13:31:35
回答 2查看 78关注 0票数 0

对于给定的查询,

代码语言:javascript
复制
select * from contacts where name like "%$name%"

mysql是否优化查询以排除变量$name为空时的条件?

当$name为空字符串时,查询将执行为

代码语言:javascript
复制
select * from contacts

或

代码语言:javascript
复制
select * from contacts where name like "%%"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-13 13:44:30

正如Alex在评论中提到的,MySQL不会做任何事情来优化类似的查询。

如果您的行中有空值,查询将不会返回结果集中的那些行,这说明了每一行都有一个检查。正如建议的那样,如果搜索值为空,最好检查代码并跳过like子句。

票数 1
EN

Stack Overflow用户

发布于 2016-06-13 13:36:03

不,

在$name为空的情况下,使用PHP条件可以完全跳过查询。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37791131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档