這里簡單回顧mysql在過濾后的數(shù)據(jù)使用正則表達(dá)式時。主要利用每方法將樣品,或添加一些簡短的說明。
下面說說提前,使用正則表達(dá)式是用來過濾數(shù)據(jù) REGEXPkeyword
基本字符相匹配:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘1000’;
該查詢語句的意思是prod_name字段中包括1000的數(shù)據(jù),僅僅要值中的不論什么部位包括1000都能夠
SELECT prod_name FROM products WHERE prod_name REGEXP ‘.000’。
"."代表的是單個字符的通配符。相當(dāng)于不論什么單個字符。類似LIKE中的通配符"_"一樣。該語句的意思是查詢處prod_name字段中包括諸如1000,2000,或者隨意一個字符后邊跟上000的數(shù)據(jù)
進(jìn)行OR匹配:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘1000|2000’;
在這里“|”代表or的意思,也就是“或”的意思。該語句會吧prod_name字段中包括1000或者包括2000或者兩個都包括的數(shù)據(jù)查詢出來。or匹配能夠給出兩個以上的匹配項(xiàng)比如 1000|2000|3000
匹配幾個字符之中的一個:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘[123] Ton’;
[]括起來的部分表示匹配當(dāng)中一個比如 1 Ton 。2 Ton 這樣
匹配范圍:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘[1-9] Ton’;
假設(shè)在上一個樣例中[]括起來的部分的字符比較長。并且都是數(shù)組,并且數(shù)字又是連續(xù)的話,能夠改成范圍匹配,這樣sql語句會更加簡短一點(diǎn),當(dāng)然能夠把[1-9]換成[123456789]。假設(shè)是字母的話但是使用[a-z]這種方式
匹配特殊字符:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘\\.’;
在mysql中要匹配特殊字符的話須要加上//轉(zhuǎn)義一下才干夠,由于特殊字符在sql語句中有特殊的含義
匹配多個實(shí)例:
首先須要介紹幾個匹配字符
* 0個或者多個匹配
+ 一個或者多個匹配(等于{1,})
?
0個或者一個匹配(等于{0,1})
{n} 指定數(shù)目的匹配
{n,} 不少于指定數(shù)目的匹配
{n,m} 匹配數(shù)目的范圍(m不超過255)
SELECT prod_name FROM products WHERE prod_name REGEXP ‘\\([0-9] sticks?\\)’;
在該語句中?匹配它前面的不論什么字符的0次或者一次出現(xiàn)
定位符:
^ 匹配文本的開始
$ 匹配文本的結(jié)尾
[[:<:]] 詞的開始
[[:>:]] 詞的結(jié)尾
SELECT prod_name FROM products WHERE prod_name REGEXP ‘^[0-9\\.]’;
匹配字符串的意思只是要.而對于數(shù)據(jù)的開始的任意數(shù)字被查詢
版權(quán)聲明:本文博客原創(chuàng)文章。博客,未經(jīng)同意,不得轉(zhuǎn)載。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

