mysql语句不使用like%%还能使用什么

mysql语句不使用like%%还能使用什么,第1张

1.不用like,不知你那是一个什么列,如果是不太长的字符串列,可以考虑建立一个手工的哈希索引,就是把那个原本要搜索的列转换为crc32()后的一串数字,然后再搜索的时候用 = crc32('keyword'), 这个是优化的一种方法,效率比like好很多

如果只是字符左端或者右端是要查找的重点 可以用left()或者right() 截取一部分来查找 还是用 =

如果是text的列,那只能用全文索引了

2.字符拼接?你是不是用了CONCAT('xx','xx')这个函数?这个就是把字符串拼起来的函数

运算应该就是简单的加减乘除运算吧,或者有NOW()之类的函数,在简单的sql查询里也不可能进行太复杂的运算 *** 作。他提这点,应该是你的语句使mysql不能使用查询缓存,导致效率低

新浪的意思大概就是你的sql效率太低,需要优化,你可以看看sql语句,有哪些优化的地方,优化优化就好了

问题出在了 你用了and 连接符,

%验证码% and %http% 这个结果是空集

然后你 not like 就是全集了。

你这样改

case WHEN message like '%验证码%' THEN '验证码' ,

WHEN message LIKE '%http%' THEN '营销'

else '通知' END


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8707414.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存