你可能有所不知的MySQL正則表達式總結
一、 什么是正則表達式
正則表達式,又稱規(guī)則表達式,通常被用來檢索、替換那些符合某個模式(規(guī)則)的文本。
說白了就是起到匹配結果集的作用,從結果集中查詢到符合開發(fā)者想要的數(shù)據。
MySQL中的正則表達式需要使用到的關鍵字是:REGEXP
話不多說,上才藝??!
對于MySQL使用正則表達式,很多猿友一開始會聯(lián)想到MySQL的模糊查詢
SELECT * FROM user WHERE user_name LIKE '%張三';
是的沒錯,模糊查詢的確能干正則所能干的事,但是,所能干的也只有兩個方面。
- % :匹配多個字符
- _ :匹配一個字符
正則所能進行的匹配條件更多,重點來了!重點來了!重點來了!
二、正則表達式
1、^ :匹配輸入字符串的開始位置,也就是匹配的數(shù)據以指定的字符作為開頭。
SELECT product_name FROM product WHERE product_name REGEXP '^小米'; #匹配以“小米”開頭的數(shù)據
查詢結果

2、$ :匹配輸入字符串的結束位置,也就是匹配的數(shù)據以指定的字符進行結尾。
SELECT product_name FROM product WHERE product_name REGEXP '小米$'; #匹配以“小米”結尾的數(shù)據
查詢結果

3、. :匹配除 “\n” 之外的任何單個字符。要匹配包括 ‘\n’ 在內的任何字符,請使用像 ‘[.\n]’ 的模式。
SELECT product_name FROM product WHERE product_name REGEXP '.小米.'; #范圍[0,1],相當于模糊查詢的 '_小米_'
查詢結果

4、[…] :字符集合。匹配所包含的任意一個字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。
SELECT product_name FROM product WHERE product_name REGEXP '[小米]'; #匹配'小'或者'米'任意一個字符
查詢結果

5、[ ^ … ] :與 […] 相反
SELECT product_name FROM product WHERE product_name REGEXP '[^小米]'; #不匹配'小米‘
查詢結果

6、| :多種選擇匹配模式
SELECT product_name FROM product WHERE product_name REGEXP '小米|儀器'; #匹配的數(shù)據中存在'小米'或者'儀器'
查詢結果

7、* :匹配前面的子表達式出現(xiàn)0次或者多次,相當于{0,N}
SELECT product_name FROM product WHERE product_name REGEXP '儀器*';
查詢結果

8、+ :匹配前面的子表達式出現(xiàn)1次或者多次,相當于{1,N}
SELECT product_name FROM product WHERE product_name REGEXP '儀器+';
查詢結果

9、{n} : 設置數(shù)據進行匹配的次數(shù)
SELECT product_name FROM product WHERE product_name REGEXP '小米{1}';
#匹配數(shù)據集中包含一個小米字段的數(shù)據查詢結果

10、{n,m} :設置最小的匹配次數(shù)和最大的匹配次數(shù)
SELECT product_name FROM product WHERE product_name REGEXP '小米{1,4}';
#匹配的數(shù)據中至少有一個'小米'字段或者最多只有四個'小米'字段查詢結果

三、總結
正則表達式在每一種編程語言中都存在,為數(shù)據的提供了高效的查找方式,也節(jié)約了開發(fā)者對數(shù)據的處理時間,但是正則使用不正確也會帶來難以發(fā)現(xiàn)的數(shù)據查詢錯誤,所以好用、方便的前期是你得使用得正確。
到此這篇關于MySQL正則表達式總結的文章就介紹到這了,更多相關MySQL正則表達式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mysql5.5 master-slave(Replication)配置方法
mysql5.5 master-slave(Replication)配置方法,需要的朋友可以參考下。2011-08-08
mysql+mybatis實現(xiàn)存儲過程+事務?+?多并發(fā)流水號獲取
這篇文章主要介紹了mysql+mybatis+存儲過程+事務?+?多并發(fā)流水號獲取,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12
mysql-5.7.42升級到mysql-8.2.0(二進制方式)
隨著數(shù)據量的增長和業(yè)務需求的變更,我們可能需要升級MySQL,本文主要介紹了mysql-5.7.42升級到mysql-8.2.0(二進制方式),具有一定的參考價值,感興趣的可以了解一下2024-03-03

