使用正則表達式進行模糊查詢
正則表達式通常用來檢索或替換符合某個模式的文本內容,根據指定的匹配模式匹配文本中符合要求的特殊字符串。例如從一個文本文件中提取電話號碼,查找一篇文章中重複的單詞或者替換用戶輸入的某些詞語等。正則表達式強大而且靈活,可以應用於非常複雜的查詢。
|
正則表達式的查詢能力比通配字符的查詢能力更強大,而且更加的靈活。正則表達式可以應用於非常複雜查詢。MySQL中,使用regexp關鍵字來匹配查詢正則表達式。
😀何雲輝 CSDN
1.正則表達式的基本語法格式如下:
- where 字段名 regexp ‘操作符’
- MySQL中使用regexp操作符指定正則表達式的字符匹配模式,regexp操作符 中常用字符匹配選項如表所示。
(正則表達式中常用的字符匹配選項)
2.查詢以特定字符或字符串開頭的記錄。使用字符“^”可以匹配以特定字符或字符串開頭的記錄。
mysql> select studentno,sname,birthdate, phone
-> from student
-> where sname regexp '^趙';
3.查詢以特定字符或字符串結尾的記錄。使用字符“$”
可以匹配以特定字符或字符串結尾的記錄
查詢student表中學生電話號碼尾數爲5的學生部分信息。
|
mysql> select studentno, sname, phone, Email
-> from student
-> where phone regexp '5$';
4.用符號“.”來替代字符串中的任意一個字符。用正則表達式來查詢時,可以用“.”來替代字符串中的任意一個字符
要實現查詢學生姓名sname字段中以“趙”開頭,以“江”結束的,中間包含兩個字符的學生信息,可以通過正則表達式查詢來實現,其中正則表達式中,^表示字符串的開始位置,$表示字符串的結束位置,.表示除“\n”以外的任何單個字符(此例中漢字按2個字符計算)。
|
mysql> select studentno, sname, phone
-> from student
-> where sname regexp '^趙..江$';
5.匹配指定字符串。
正則表達式可以匹配字符串。當表中的記錄包含這個字符串時,就可以將該記錄查詢出來。如果指定多個字符串時,需要用符號“|”隔開。只要匹配這些字符串中的任意一個即可。
查詢學生電話號碼出現131或132數字的學生信息。
|
mysql> select studentno, sname, phone, Email
-> from student
-> where phone regexp '131|132';
😀何雲輝 CSDN