Mysql中使用正則表達(dá)式查詢
正則表達(dá)式是一種用特定模式匹配字符串的方式,其查詢能力遠(yuǎn)超通配字符,并且更加靈活。下面將以mysql中的查詢?yōu)槔?,講解如何使用正則表達(dá)式進(jìn)行查詢。使用REGEXP關(guān)鍵字匹配查詢在mysql中,使用RE
正則表達(dá)式是一種用特定模式匹配字符串的方式,其查詢能力遠(yuǎn)超通配字符,并且更加靈活。下面將以mysql中的查詢?yōu)槔?,講解如何使用正則表達(dá)式進(jìn)行查詢。
使用REGEXP關(guān)鍵字匹配查詢
在mysql中,使用REGEXP關(guān)鍵字來匹配查詢正則表達(dá)式?;拘问饺缦拢?br>
查詢字段名 REGEXP '所需匹配方式'
給出一個表的結(jié)構(gòu)并提供一些實(shí)例數(shù)據(jù),方便講解時使用。假設(shè)表名為tb1。
模式字符 ^
^表示匹配以特定字符或字符串開頭的記錄。例如,使用"^"表達(dá)式查詢tb1中major字段以m開頭的記錄,則語句如下:
Select major from tb1 where major regexp '^m';
模式字符 $
$表示匹配以特定字符或字符串結(jié)尾的記錄。例如,使用"$"表達(dá)式查詢tb1中major字段以c結(jié)尾的記錄,則語句如下:
Select major from tb1 where major regexp 'c$';
模式字符 .
.表示匹配字符串中任意一個字符,包括回車或換行等。例如,使用"."表達(dá)式查詢tb1中number字段包含4的記錄,則語句如下:
Select number from tb1 where major regexp '4.';
模式字符 [字符集合]
[字符集合]表示匹配字符集合中任意一個字符。例如,使用"[456]"表達(dá)式查詢tb1中number字段包含456的記錄,則語句如下:
Select number from tb1 where major regexp '[456]';
模式字符 S1|S2|S3
S1|S2|S3表示匹配S1、S2、S3中的任意一個字符串。例如,查詢tb1中major字段包含a、p或mic字符中任意一個字符的記錄,則語句如下:
Select * from tb1 where major regexp 'a|p|mic';
模式字符 *
*表示匹配多個該字符之前的字符,包括0和1個。例如,使用"*"表達(dá)式查詢tb1中major字段中m字符前出現(xiàn)c字符的記錄,則語句如下:
Select major from tb1 where major regexp 'c*m';
模式字符
表示匹配多個該字符之前的字符,至少一個。例如,使用" "表達(dá)式查詢tb1中major字段中m字符前至少出現(xiàn)一個c字符的記錄,則語句如下:
Select major from tb1 where major regexp 'c m';
模式字符 {N}
{N}表示匹配字符出現(xiàn)N次。例如,使用"{2}"表達(dá)式查詢tb1中major字段中連續(xù)出現(xiàn)2次m的記錄,則語句如下:
Select major from tb1 where major regexp 'm{2}';
模式字符 {M,N}
{M,N}表示匹配字符至少出現(xiàn)M次,最多出現(xiàn)N次。例如,使用"{2,3}"表達(dá)式查詢tb1中major字段中連續(xù)出現(xiàn)2到3次m的記錄,則語句如下:
Select major from tb1 where major regexp 'a{2,3}';
在mysql中,正則表達(dá)式的使用與其他編程語言基本一致。希望以上內(nèi)容對大家的學(xué)習(xí)有所幫助。