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

MySQL 字串模式匹配全攻略:LIKE 與 REGEXP 實戰對比

     編輯:MySQL 資料庫相關知識

一、標準 SQL 模式匹配(LIKE / NOT LIKE)

  • _:匹配任意單字符
  • %:匹配任意數量字符(含零個)
  • MySQL 預設不區分大小寫
  • 不可使用 = 或 !=,必須用 LIKE / NOT LIKE

實例(以 pet 表為例)

需求語句結果示例
以 "b" 開頭SELECT * FROM pet WHERE name LIKE "b%";Buffy, Bowser
以 "fy" 結尾SELECT * FROM pet WHERE name LIKE "%fy";Fluffy, Buffy
包含 "w"SELECT * FROM pet WHERE name LIKE "%w%";Claws, Bowser, Whistler
剛好 5 字符SELECT * FROM pet WHERE name LIKE "_____";Claws, Buffy

二、擴展正則表達式(REGEXP / RLIKE)

基於 Unix vi/grep/sed 標準,功能更強但區分大小寫,僅 MySQL 支援。

核心元字符

  • .:任意單字符
  • [...]:字符類,如 [abc]、[a-z]、[0-9]
  • *:零或多個前面元素
  • ^ / $:錨定開頭/結尾
  • {n}:重複 n 次

對應 LIKE 範例改寫

需求REGEXP 寫法
以 "b" 開頭SELECT * FROM pet WHERE name REGEXP "^[bB]";
以 "fy" 結尾SELECT * FROM pet WHERE name REGEXP "fy$";
包含 "w"SELECT * FROM pet WHERE name REGEXP "[wW]";
剛好 5 字符SELECT * FROM pet WHERE name REGEXP "^.....$"; 或 "^.{5}$"

總結

LIKE 為 SQL 標準,跨資料庫可移植;REGEXP 功能更強(分組、量詞、錨定)但僅限 MySQL。按需選擇。

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