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

MySQL 模糊查詢與正則表達式實戰詳解

     編輯:MySQL 資料庫相關知識

LIKE 模式匹配(不區分大小寫)

通配符含義範例匹配結果
%任意長度字符(含 0)name LIKE 'b%'以 b 開頭:Buffy, Bowser
_單個字符name LIKE '_____'長度 5:Claws, Buffy
%...%包含子串name LIKE '%w%'含 w:Claws, Bowser, Whistler

關鍵規則:必須用 LIKE/NOT LIKE,不能用 =/!=。

REGEXP 正則表達式(區分大小寫可用 BINARY)

常用元字符

  • .:任意單字符
  • [...]:字符集,如 [a-z]、[0-9]
  • *:前一字符 0 次或多次
  • ^:行首錨點
  • $:行尾錨點
  • {n}:精確重複 n 次

LIKE → REGEXP 等價轉換

LIKE 寫法REGEXP 寫法說明
name LIKE 'b%'name REGEXP '^b'以 b 開頭
name LIKE '%fy'name REGEXP 'fy$'以 fy 結尾
name LIKE '%w%'name REGEXP 'w'包含 w(REGEXP 默認部分配)
name LIKE '_____'name REGEXP '^.....$' 或 '^.{5}$'長度 5

進階技巧

-- 強制區分大小寫
SELECT * FROM pet WHERE name REGEXP BINARY '^b';

-- 字符類範圍
SELECT * FROM pet WHERE name REGEXP '^[a-z]';  -- 以小寫字母開頭

-- 多選一
SELECT * FROM pet WHERE name REGEXP '^(cat|dog|bird)$';  -- 精確匹配三種物種

性能與最佳實踐

  1. 前綴索引優化:LIKE 'abc%' 可用索引;LIKE '%abc' 全表掃描
  2. REGEXP 不走索引:大表慎用,考慮全文索引或應用層過濾
  3. CHAR/VARCHAR 字符集影響匹配:utf8mb4 下 . 匹配單字符而非字節
  4. 需精確匹配全值時,LIKE 需 'abc',REGEXP 需 '^abc$'
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved