Mysql - like 语句会不会走索引

Mysql - like 语句会不会走索引,第1张

答案是满足特定条件, ,如下:

原因是满足 最左前缀

最左前缀不仅仅适用于 组合索引 ,还适用于 varchar 的 like 语句,但是要注意,只有 like "XXX%" 的情况走索引, like "%XXX" 是不走索引的。

Mysql innodb 引擎默认的索引数据结构是 b+ 树,组合索引会形成多字段顺序排序,比如下图,会先按照姓名进行排序,姓名相等就再按照年龄排序,所以会有组合索引的最左前缀原理,而假如只 like 查询姓名,例如 like "张%" ,则也可以使用最左前缀原理,先索引到 张六 ,然后遍历查询,直到姓名不以 张 开头。

LIKE运算符用于WHERE表达式中,以搜索匹配字段中的指定内容,语法如下:

LIKE通常与通配符%一起使用进行模糊匹配,%表示通配pattern中出现的内容,而不加通配符%的LIKE语法,表示精确匹配,其实际效果等同于 = 等于运算符。SQL LIKE 子句中使用百分号 %字符来表示任意字符。

MySQL LIKE 匹配字符的时候,默认情况下是不区分大小写的,如果在需要区分大小写的时候,可以加入BINARY *** 作符:

MySQL中使用 REGEXP *** 作符来进行正则表达式匹配。

实例:

like 就是模糊查询的意思 % 是不确定多少位 _ 代表一位

select * from emp where ename like 'A%'查询出EMP表中ename以A开头的人的所有信息

select * from emp where ename like '%A'查询出EMP表中ename以A结尾的人的所有信息

select * from emp where ename like '_a%' 查询出EMP表中ename中第二个字母是A的人的所有信息


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存