国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 在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