哪个更好?在 Mysql 查询的 where 子句中定位或 like %
可能的重复:
MySQL LIKE 与 LOCATE
我需要编写一个 Mysql 查询,它根据 a 中的字符串选择行柱子。假设该列名为 TestColumn。我需要选择列中任何位置包含“stackoverflow”的所有行。使用哪个会更好
Select * from testtable where TestColumn like '%stackoverflow%'
,或者
Select * from testtable where Locate('stackoverflow', TestColumn)>0
哪个会带来更好的性能?提前致谢。
Possible Duplicate:
MySQL LIKE vs LOCATE
I need to write a Mysql query which chooses rows based on a string in a column. Say the column is named TestColumn. I need to choose all rows which contain 'stackoverflow' anywhere in the column. Would it better to use
Select * from testtable where TestColumn like '%stackoverflow%'
or
Select * from testtable where Locate('stackoverflow', TestColumn)>0
Which would result in a better performance? Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这对于
LIKE
来说确实是一个问题。当子字符串的位置很重要时,应使用LOCATE
。This is really a problem for
LIKE
.LOCATE
should be used when the position of the substring is important.% 比函数调用更好。 % 将使用全文索引(如果存在)。函数调用则不然。
% is better than a function call. % will use full text index if it is existing. It is not the case with the function call.