首頁  >  文章  >  資料庫  >  MySql中關於正規表示式查詢的使用方法介紹

MySql中關於正規表示式查詢的使用方法介紹

黄舟
黄舟原創
2017-07-20 14:43:151460瀏覽

Mysql 使用 REGEXP 關鍵字指定正規表示式的字元匹配模式。接下來透過本文來跟大家分享MySql中使用正規表示式查詢的方法,有興趣的朋友一起看看吧

#正規表示式常用來檢索和替換那些符合魔種模式的文字。例如從一個文字檔案中提取電話號碼,尋找一篇文章中重複的單字或取代使用者輸入的某些敏感詞彙等。 Mysql 使用 REGEXP 關鍵字指定正規表示式的字元匹配模式。

目錄

1. 字元'^' 查詢以特定字元或字串開頭的記錄


#
SELECT * FROM user WHERE email REGEXP '^a'

字元'^' 符合以特定字元或字串開頭的記錄,以上語句查詢郵件信箱以a 開頭的記錄

2. 字元' 查詢以特定字元或字元字串結尾的記錄


SELECT * FROM user WHERE phone REGEXP '0$'

字元'$' 符合以特定字元或字串結尾的記錄,以上語句查詢郵件信箱以0 結尾的記錄

# 3. 用符號「.」;來取代字串中的任一個字元


SELECT * FROM user WHERE email REGEXP 'a.c'

查詢郵件信箱a、c 之間有一個字元的記錄,'.' 相當於是一個佔位符。如果寫成 REGEXP ‘a..c' , 即a、c之間有兩個點,則表示郵箱中 a、c 之間要有兩個字元。

4.使用「*」來匹配多個字元


SELECT * FROM user WHERE email REGEXP 'm*'

查詢所有郵箱中有 m 的記錄。


SELECT * FROM user WHERE email REGEXP '^am*'

查詢信箱字母 a開頭, a後面有字母 m 的記錄。其中'*' 表示0次或以上。

5. 以字元「+」表示緊接的字元


SELECT * FROM user WHERE email REGEXP 'm+'

查詢所有信箱中有 m 的記錄。


SELECT * FROM user WHERE email REGEXP '^am+'

查詢郵件字母 a開頭, a後面緊跟著字母 m 的記錄。其中'+' 表示緊接字元。

6. “|” 分隔條件符合指定字串


SELECT * FROM user WHERE email REGEXP 'qq.com|163.com'

正規表示式可以符合指定的字串,字串之間使用「| ” 分隔。

7. “[]” 表示集合符合指定字串中的任一個


#
SELECT * FROM user WHERE email REGEXP '[az]'

”[]“ 指定一個集合,以上表示查詢信箱中帶有a或z或兩者都有的郵箱。也可以用來配對數字集合,例如 [0-9] 表示集合區間所有數字,[a-z] 表示集合區間所有字母。

8. 「[^]」符合指定字元以外的字元


SELECT * FROM user WHERE email REGEXP '[^a-d1-3]'

如上符合郵件匣中不包含a、b、c、d 且不包含1、2、3 的記錄。

9. 使用{n,} 或{n,m} 來指定字串連接出現的次數


SELECT * FROM user WHERE email REGEXP 'b{2}'

表示字母b 至少出現2 次。


SELECT * FROM user WHERE email REGEXP 'yu{1,3}'

表示字串 ba 至少出現1次,至多出現3次。

總結

#

以上是MySql中關於正規表示式查詢的使用方法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn