MySql中使用正則表達式查詢的方法
正則表達式常用來檢索和替換那些符合魔種模式的文本。例如從一個文本文件中提取電話號碼,查找一篇文章中重復(fù)的單詞或者替換用戶輸入的某些敏感詞匯等。Mysql 使用 REGEXP 關(guān)鍵字指定正則表達式的字符匹配模式。
1. 字符 ‘^' 查詢以特定字符或字符串開頭的記錄
SELECT * FROM user WHERE email REGEXP '^a'
字符 ‘^' 匹配以特定字符或字符串開頭的記錄,以上語句查詢郵箱以 a 開頭的記錄
2. 字符 ' 查詢以特定字符或字符串結(jié)尾的記錄
SELECT * FROM user WHERE phone REGEXP '0$'
字符 ‘$' 匹配以特定字符或字符串結(jié)尾的記錄,以上語句查詢郵箱以 0 結(jié)尾的記錄
3. 用符號“.”;來代替字符串中的任意一個字符
SELECT * FROM user WHERE email REGEXP 'a.c'
查詢郵箱 a、c 之間有一個字符的記錄,'.' 相當(dāng)于是一個占位符。如果寫成 REGEXP ‘a(chǎn)..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或兩者都有的郵箱。也可以用來匹配數(shù)字集合,比如 [0-9] 表示集合區(qū)間所有數(shù)字,[a-z] 表示集合區(qū)間所有字母。
8. “[^]”匹配指定字符以外的字符
SELECT * FROM user WHERE email REGEXP '[^a-d1-3]'
如上匹配郵箱中不包含 a、b、c、d 且 不包含 1、2、3 的記錄。
9. 使用{n,} 或 {n,m} 來指定字符串連接出現(xiàn)的次數(shù)
SELECT * FROM user WHERE email REGEXP 'b{2}'
表示字母 b 至少出現(xiàn) 2 次。
SELECT * FROM user WHERE email REGEXP 'yu{1,3}'
表示字符串 ba 至少出現(xiàn)1次,至多出現(xiàn)3次。
總結(jié)
以上所述是小編給大家介紹的MySql中使用正則表達式查詢的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
mysql實現(xiàn)查詢數(shù)據(jù)并根據(jù)條件更新到另一張表的方法示例
這篇文章主要介紹了mysql實現(xiàn)查詢數(shù)據(jù)并根據(jù)條件更新到另一張表的方法,結(jié)合實例形式分析了mysql多表關(guān)聯(lián)查詢、更新等相關(guān)操作技巧,需要的朋友可以參考下2019-03-03Mysql?for?update導(dǎo)致大量行鎖的問題
這篇文章主要介紹了Mysql?for?update?導(dǎo)致大量行鎖的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08Linux下將數(shù)據(jù)庫從MySQL遷移到MariaDB的基礎(chǔ)操作教程
這篇文章主要介紹了將數(shù)據(jù)庫從MySQL遷移到MariaDB的基礎(chǔ)操作教程,當(dāng)然遷移之前不要忘記數(shù)據(jù)庫的備份!需要的朋友可以參考下2015-11-11MySQL性能優(yōu)化之table_cache配置參數(shù)淺析
這篇文章主要介紹了MySQL性能優(yōu)化之table_cache配置參數(shù)淺析,本文介紹了它的緩存機制、參數(shù)優(yōu)化及清空緩存的命令等,需要的朋友可以參考下2014-07-07MySql采用GROUP_CONCAT合并多條數(shù)據(jù)顯示的方法
這篇文章主要介紹了MySql采用GROUP_CONCAT合并多條數(shù)據(jù)顯示的方法,是MySQL數(shù)據(jù)庫程序設(shè)計中常見的實用技巧,需要的朋友可以參考下2014-10-10pymysql.err.DataError:(1264, ")異常的有效解決方法(最新推薦)
遇到pymysql.err.DataError錯誤時,錯誤代碼1264通常指的是MySQL數(shù)據(jù)庫中的Out of range value for column錯誤,這意味著你嘗試插入或更新的數(shù)據(jù)超過了對應(yīng)數(shù)據(jù)庫列所允許的范圍,這篇文章主要介紹了pymysql.err.DataError:(1264, ")異常的有效問題,需要的朋友可以參考下2024-05-05