首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL LIKE 模糊查詢全解析:% 萬用字元、_ 單字元與效能優化建議

     編輯:MySQL 綜合教學

LIKE 是字串模式比對的基石。本文詳細說明 %(任意長度)、_(單一字元)兩大萬用字元用法,並對比兩者差異,最後給出索引利用與效能優化建議。

1. %:匹配任意長度字元(含 0 字元)

只匹配「任一字元 + ' ton anvil'」,故 .5 ton anvil(前綴為兩字元)不會被選中。

3. % vs _ 差異對比

5. 大小寫敏感度

  • 預設依欄位排序規則:utf8mb4_general_ci 不分大小寫,utf8mb4_bin 分大小寫
  • 強制區分大小寫:WHERE col LIKE 'abc%' COLLATE utf8mb4_bin

6. 效能關鍵:索引何時生效?

模式能否用索引說明
prefix%✅ 是最左前綴匹配,可走 B-Tree 索引
%suffix❌ 否前導萬用字元,全表掃描
%middle%❌ 否兩端萬用字元,全表掃描
_prefix%❌ 否前導單字元萬用字元同樣阻擋索引

7. 優化建議

  • 避免前導 %;若業務必須「任意位置搜尋」,考慮全文索引(FULLTEXT)或外部搜尋引擎
  • 短字串欄位(如代碼、編號)優先用 = 或 IN,保留索引優勢
  • 必要時建立前綴索引:INDEX idx_name (col(10)) 加速 col LIKE 'abc%'

小結

% 匹配任意長度、_ 匹配單字元。牢記「前導萬用字元殺索引」,業務允許時儘量改寫為前綴匹配或改用全文搜尋方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved