1. 程式人生 > 實用技巧 >SQL中常見的模糊查詢like與正則表示式

SQL中常見的模糊查詢like與正則表示式

1.普通的模糊查詢

 SELECT 欄位 FROM 表名 WHERE 欄位 LIKE 條件

  關於條件又可以分為四種匹配模式:

  1)%表示零個或任意多個字元。

  SELECT * FROM student WHERE stu_name LIKE ‘%詩%’

  這樣就可以篩選出劉詩雯、王詩淼等類的人。

  2)_: 表示任意單個字元、匹配單個任意字元。

  SELECT * FROM student WHERE stu_name LIKE '_詩_'

  這樣可以匹配到劉詩雯、劉劉詩雯雯、劉詩雯雯雯雯等等中間出現詩的名字。

  3)[^ ] :表示不在括號所列之內的單個字元。

  SELECT * FROM student WHERE stu_name LIKE '[^趙錢孫]詩雯'

  這樣可以排除趙詩雯、錢詩雯、孫詩雯。

  4)[ ]:表示括號內所列字元中的一個。

  SELECT * FROM student WHERE stu_name LIKE '[趙錢孫]詩雯'

  這樣可以匹配到趙詩雯、錢詩雯、孫詩雯。(類似正則表示式)

2.正則表示式,使用REGEXP和NOT REGEXP操作符

  “.”匹配任何單個的字元:一個字元類“[...]”匹配在方括號內的任何字元。

  “ * ”匹配零個或多個在它前面的東西: 例如[a-z] *表示隨機匹配任何數量a-z之間的字母

  使用“^”和“$”匹配名字的開始和結尾

  SELECT * FROM student WHERE stu_name REGEXP "^.....$";
  名字包含五個字元的學生

  “{n}”“重複n次”

  SELECT * FROM student WHERE stu_name REGEXP "^.{3}$";
  匹配三個字的名字