千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 在mysql中, 为什么只有右模糊才走索引?

在mysql中, 为什么只有右模糊才走索引?

来源:千锋教育
发布人:xqq
时间: 2023-10-13 13:18:13 1697174293

一、在mysql中, 只有右模糊才走索引的原因

在 MySQL 中,索引通常是针对列值的左侧前缀进行排序和存储的。当使用 LIKE 查询语句时,如果使用“%”通配符在列值的左侧进行模糊匹配,那么 MySQL 将无法使用索引优化查询,而需要进行全表扫描。因此,只有在 LIKE 查询语句中,使用“%”通配符在列值的右侧进行模糊匹配时,MySQL 才能够利用索引进行优化查询,提高查询效率。这是因为只有右侧的列值前缀与查询条件相匹配,MySQL 才能够利用索引检索相关的记录,从而避免进行全表扫描。

二、MySQL LIKE 子句

在 MySQL 中,LIKE 关键字主要用于搜索匹配字段中的指定内容。其语法格式如下:

[NOT] LIKE  '字符串'

解释:

NOT :可选参数,字段中的内容与指定的字符串不匹配时满足条件。字符串:指定用来匹配的字符串。“字符串”可以是一个很完整的字符串,也可以包含通配符。右模糊:范围索引左模糊:不走索引,全表查询

LIKE 关键字支持百分号“%”和下划线“_”通配符:

搭配%使用:%代表一个或多个字符的通配符,譬如查询字段name中以大开头的数据:搭配_使用:_代表仅仅一个字符的通配符,把上面那条查询语句中的%改为_,会发现只能查询出一条数据。

三、mysql常用查询语句

1、LIKE的灵活运用

% :匹配一个或多个字符串 _ :匹配单个任意字符串 【】:中括号内的单个字符匹配 【^ 】:非括号内的单个字符匹配

2、分组查询

GROUP BY +HAVING GROUP BY:用于分组,通常会与聚合函数(如max、sum、min、count等)搭配起来使用 HAVING:用于筛选,与where类似,但是一般会与GROUP BY搭配起来使用 

3、子查询

一般用in 、not in、exsit、not exsit将主查询表与子表中的关联字段做连接

4、取两个表结果集中的差集

在oracle里面比较简单,可以用minus 来直接取出两个表的差集。在mysql里面没有此类关键字可以用,相对来说查询效率较高的,要用左连接的方式来查询。

SELECT a.* FROM (SELECT * from malldb.mall_user_express_addr WHERE user_id=’53’ ) a LEFT JOIN (SELECT * FROM malldb.mall_user_express_addr WHERE address LIKE ‘%今天%’ ) b on a.id=b.id where b.id is null

5、分页查询

limit N,M 从N条开始到N+M条被取出 比如要取出第5页的数据,每页显示20条 select * from 表A limit 81,20

延伸阅读1:MySQL

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是较好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT