正規表示式常用來檢索和替換那些符合魔種模式的文字。例如從乙個文字檔案中提取**號碼,查詢一篇文章中重複的單詞或者替換使用者輸入的某些敏感詞彙等。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...