MySql中使用正則表達(dá)式查詢的方法
正則表達(dá)式常用來檢索和替換那些符合魔種模式的文本。例如從一個(gè)文本文件中提取電話號(hào)碼,查找一篇文章中重復(fù)的單詞或者替換用戶輸入的某些敏感詞匯等。Mysql 使用 REGEXP 關(guān)鍵字指定正則表達(dá)式的字符匹配模式。
1. 字符 ‘^' 查詢以特定字符或字符串開頭的記錄
SELECT * FROM user WHERE email REGEXP '^a'
字符 ‘^' 匹配以特定字符或字符串開頭的記錄,以上語句查詢郵箱以 a 開頭的記錄
2. 字符 ' 查詢以特定字符或字符串結(jié)尾的記錄
SELECT * FROM user WHERE phone REGEXP '0$'
字符 ‘$' 匹配以特定字符或字符串結(jié)尾的記錄,以上語句查詢郵箱以 0 結(jié)尾的記錄
3. 用符號(hào)“.”;來代替字符串中的任意一個(gè)字符
SELECT * FROM user WHERE email REGEXP 'a.c'
查詢郵箱 a、c 之間有一個(gè)字符的記錄,'.' 相當(dāng)于是一個(gè)占位符。如果寫成 REGEXP ‘a(chǎn)..c' , 即a、c之間有兩個(gè)點(diǎn),則表示郵箱中 a、c 之間要有兩個(gè)字符。
4.使用“*”匹配多個(gè)字符
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'
正則表達(dá)式可以匹配指定的字符串,字符串之間使用 “|” 分隔。
7. “[]” 表示集合匹配指定字符串中的任意一個(gè)
SELECT * FROM user WHERE email REGEXP '[az]'
”[]“ 指定一個(gè)集合,以上表示查詢郵箱中帶有 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中使用正則表達(dá)式查詢的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
mysql8創(chuàng)建、刪除用戶以及授權(quán)、消權(quán)操作詳解
上網(wǎng)找過資料說要進(jìn)入mysql數(shù)據(jù)庫在進(jìn)行這些操作,所以下面這篇文章主要給大家介紹了關(guān)于mysql8創(chuàng)建、刪除用戶以及授權(quán)、消權(quán)操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03mysql在項(xiàng)目中怎么選事務(wù)隔離級(jí)別
Mysql默認(rèn)的事務(wù)隔離級(jí)別是可重復(fù)讀,那互聯(lián)網(wǎng)項(xiàng)目中Mysql也是用默認(rèn)隔離級(jí)別,但在項(xiàng)目中呢,下面我們就一起來了解一下2021-05-05mysql實(shí)現(xiàn)多表關(guān)聯(lián)統(tǒng)計(jì)(子查詢統(tǒng)計(jì))示例
這篇文章主要介紹了mysql實(shí)現(xiàn)多表關(guān)聯(lián)統(tǒng)計(jì)(子查詢統(tǒng)計(jì)),結(jié)合具體案例形式分析了mysql多表關(guān)聯(lián)統(tǒng)計(jì)的原理、實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-10-10解析MySQL的information_schema數(shù)據(jù)庫
本篇文章是對(duì)MySQL的information_schema數(shù)據(jù)庫進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06MySQL觸發(fā)器自動(dòng)智能化的數(shù)據(jù)維護(hù)
這篇文章主要介紹了MySQL觸發(fā)器自動(dòng)智能化的數(shù)據(jù)維護(hù),觸發(fā)器,就是一種特殊的存儲(chǔ)過程。觸發(fā)器和存儲(chǔ)過程一樣是一個(gè)能夠完成特定功能、存儲(chǔ)在數(shù)據(jù)庫服務(wù)器上的SQL片段2022-07-07詳解MySql基本查詢、連接查詢、子查詢、正則表達(dá)查詢
本篇文章采用了圖文相結(jié)合的方式介紹了數(shù)據(jù)庫的四大查詢方式:基本查詢、連接查詢、子查詢、正則表達(dá)查詢,需要了解的朋友可以參考下2015-07-07Mysql基礎(chǔ)入門 輕松學(xué)習(xí)Mysql命令
這篇文章主要是Mysql基礎(chǔ)入門教程,教大家如何輕松學(xué)習(xí)Mysql命令,并熟練掌握Mysql命令,感興趣的小伙伴們可以參考一下2015-11-11mysql如何創(chuàng)建和刪除唯一索引(unique key)
這篇文章主要介紹了mysql如何創(chuàng)建和刪除唯一索引(unique key)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12mysql?binlog查看指定數(shù)據(jù)庫的操作方法
MySQL 的 binlog(二進(jìn)制日志)主要記錄了數(shù)據(jù)庫上執(zhí)行的所有更改數(shù)據(jù)的 SQL 語句,包括數(shù)據(jù)的插入、更新和刪除等操作這篇文章主要介紹了mysql?binlog查看指定數(shù)據(jù)庫的方法,需要的朋友可以參考下2024-06-06