MySql中使用正規表示式查詢的方法

2022-09-28 06:27:10 字數 1620 閱讀 9116

正規表示式常用來檢索和替換那些符合魔種模式的文字。例如從乙個文字檔案中提取**號碼,查詢一篇文章中重複的單詞或者替換使用者輸入的某些敏感詞彙等。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 之間有乙個字元的記錄,'.' 相當於是乙個佔位符。如果寫成 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. 「」 表ekhawqwm示集程式設計客棧合匹配指定字串中的任意乙個

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. 使用 或 來指定字串連線出現的次數

select * from user where email regexp 'b'程式設計客棧

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

select * from user where email regexp 'yu'

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

總結本文標題: mysql中使用正規表示式查詢的方法

本文位址:

Mysql中使用正規表示式

最近在 mysql必知必會 這本書中讀到在sql中使用正規表示式,以前是學過資料庫也學過正規表示式,但是不知道原來他們可以一起使用,這裡做下記錄。首先是mysql使用正規表示式的語法 select from where regexp 這裡引號裡面寫正規表示式 有同學可能學過like模糊匹配,沒有學習...

MySQL 使用正規表示式查詢

字元 匹配特定字元 select from fruits where f name regexp b 字元 特定字元結尾 select from fruits where f name regexp y 字元 代替字串中的任意乙個字元 select from fruits where f name ...

mysql 使用正規表示式查詢

整理自清華大學出版社 mysql入門很簡單 基本形式 屬性名 regexp 匹配方式 正規表示式的模式字元 匹配字元開始的部分 eg1 從info表name欄位中查詢以l開頭的記錄 select from info where name regexp l eg2 從info表name欄位中查詢以aa...