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}$";
  匹配三個字的名字

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM