這里簡單回顧mysql在過濾后的數據使用正則表達式時。主要利用每方法將樣品,或添加一些簡短的說明。
下面說說提前,使用正則表達式是用來過濾數據 REGEXPkeyword
基本字符相匹配:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘1000’;
該查詢語句的意思是prod_name字段中包括1000的數據,僅僅要值中的不論什么部位包括1000都能夠
SELECT prod_name FROM products WHERE prod_name REGEXP ‘.000’。
"."代表的是單個字符的通配符。相當于不論什么單個字符。類似LIKE中的通配符"_"一樣。該語句的意思是查詢處prod_name字段中包括諸如1000,2000,或者隨意一個字符后邊跟上000的數據
進行OR匹配:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘1000|2000’;
在這里“|”代表or的意思,也就是“或”的意思。該語句會吧prod_name字段中包括1000或者包括2000或者兩個都包括的數據查詢出來。or匹配能夠給出兩個以上的匹配項比如 1000|2000|3000
匹配幾個字符之中的一個:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘[123] Ton’;
[]括起來的部分表示匹配當中一個比如 1 Ton 。2 Ton 這樣
匹配范圍:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘[1-9] Ton’;
假設在上一個樣例中[]括起來的部分的字符比較長。并且都是數組,并且數字又是連續的話,能夠改成范圍匹配,這樣sql語句會更加簡短一點,當然能夠把[1-9]換成[123456789]。假設是字母的話但是使用[a-z]這種方式
匹配特殊字符:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘\\.’;
在mysql中要匹配特殊字符的話須要加上//轉義一下才干夠,由于特殊字符在sql語句中有特殊的含義
匹配多個實例:
首先須要介紹幾個匹配字符
* 0個或者多個匹配
+ 一個或者多個匹配(等于{1,})
?
0個或者一個匹配(等于{0,1})
{n} 指定數目的匹配
{n,} 不少于指定數目的匹配
{n,m} 匹配數目的范圍(m不超過255)
SELECT prod_name FROM products WHERE prod_name REGEXP ‘\\([0-9] sticks?\\)’;
在該語句中?匹配它前面的不論什么字符的0次或者一次出現
定位符:
^ 匹配文本的開始
$ 匹配文本的結尾
[[:<:]] 詞的開始
[[:>:]] 詞的結尾
SELECT prod_name FROM products WHERE prod_name REGEXP ‘^[0-9\\.]’;
匹配字符串的意思只是要.而對于數據的開始的任意數字被查詢
版權聲明:本文博客原創文章。博客,未經同意,不得轉載。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
