首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL LIKE 模糊查詢通配符與 REGEXP 正則完整指南

     編輯:MySQL 資料庫相關知識

MySQL 模糊匹配雙引擎:SQL 模式(LIKE)vs 正則模式(REGEXP)

一、SQL 模式(LIKE)

預設**不區分大小寫**。**必須用 LIKE/NOT LIKE,不能用 =/!=**。

兩大通配符

符號含義範例匹配結果
%任意長度(含 0)LIKE '%三%'張三、張貓三、三腳貓、唐三藏
_單個任意字符LIKE '_三_'唐三藏(三字、中間是三)

多條件組合


-- 同時含「三」和「貓」
WHERE u_name LIKE '%三%' AND u_name LIKE '%貓%'

-- 以「三」開頭、以「貓」結尾
WHERE u_name LIKE '三%貓'

二、正則模式(REGEXP / RLIKE)

**區分大小寫**。支援擴展正則表達式。

核心元字符

符號含義範例
.任意單字符(單字節)REGEXP 'a.c' 匹配 abc、axc
[...]字符集合[abc]、[a-z]、[0-9]
[^...]排除集合[^0-9] 非數字
*前面元素 0~n 次ab*c 匹配 ac、abc、abbc
+前面元素 1~n 次ab+c 匹配 abc、abbc
^字符串開頭^三 以三開頭
$字符串結尾三$ 以三結尾
{n}重複 n 次b{2}$ 以 bb 結尾

大小寫不敏感技巧


WHERE u_name REGEXP '[aA]'      -- 匹配 a 或 A
WHERE u_name REGEXP '[a-zA-Z]'  -- 任意字母

三、REGEXP 重寫 LIKE 經典場景

需求LIKE 寫法REGEXP 寫法
以「三」開頭LIKE '三%'REGEXP '^三'
以「三」結尾LIKE '%三'REGEXP '三$'
含「三」LIKE '%三%'REGEXP '三'
第三字符是「三」LIKE '__三%'REGEXP '^..三'

四、中文注意事項

  • 正則中 . 匹配**單字節**,UTF8 中文佔 3 字節 → . 會拆散中文
  • 建議中文場景優先用 LIKE,或用 CHAR_LENGTH 配合 SUBSTR
  • MySQL 8.0+ REGEXP 支援 Unicode 字符屬性(\p{Han})

選擇建議

  • 簡單前綴/後綴/包含:**LIKE**(可走索引前綴)
  • 複雜模式、邊界、數量詞:**REGEXP**
  • 效能敏感:避免開頭通配符 %xxx,考慮全文索引或外部搜索引擎
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved