除了LIKE子句提供的模式匹配之外,MariaDB通過(guò)REGEXP運(yùn)算符提供基于正則表達(dá)式的匹配。 運(yùn)算符基于給定模式對(duì)字符串表達(dá)式執(zhí)行模式匹配。
MariaDB 10.0.5引入了PCRE Regular Expressions,這大大增加了匹配范圍,如遞歸模式,前瞻斷言等等。
查看下面給出的標(biāo)準(zhǔn)REGEXP運(yùn)算符語(yǔ)法的使用 -
SELECT column FROM table_name WHERE column REGEXP '[PATTERN]';
REGEXP返回1表示模式匹配,或0表示沒(méi)有模式匹配。
相反的選項(xiàng)以NOT REGEXP的形式存在。 MariaDB還提供REGEXP和NOT REGEXP,RLIKE和NOT RLIKE的同義詞,它們是出于兼容性原因而創(chuàng)建的。
比較的模式可以是文字字符串或其他內(nèi)容,如表列。 在字符串中,它使用C轉(zhuǎn)義語(yǔ)法,所以加倍任何“\”字符。 REGEXP也是不區(qū)分大小寫(xiě)的,二進(jìn)制字符串除外。
下面給出了可以使用的可能模式的表格 -
S.No | 圖案和說(shuō)明 |
---|---|
1 | ^ 它匹配字符串的開(kāi)頭。 |
2 | $ 它匹配字符串的結(jié)尾。 |
3 | . 它匹配單個(gè)字符。 |
4 | [...] 它匹配括號(hào)中的任何字符。 |
5 | [^ ...] 它匹配括號(hào)中未列出的任何字符。 |
6 | P1 | P2 | P3 它匹配任何模式。 |
7 | * 它匹配前面元素的0個(gè)或多個(gè)實(shí)例。 |
8 | + 它匹配前一個(gè)元素的1個(gè)或多個(gè)實(shí)例。 |
9 | {N} 它匹配前面元素的n個(gè)實(shí)例。 |
10 | {M,N} 它匹配m到前面元素的n個(gè)實(shí)例。 |
查看下面給出的模式匹配示例 -
以“pr”開(kāi)頭的產(chǎn)品 -
SELECT name FROM product_tbl WHERE name REGEXP '^pr';
以“na”結(jié)尾的產(chǎn)品 -
SELECT name FROM product_tbl WHERE name REGEXP 'na$';
以元音開(kāi)頭的產(chǎn)品 -
SELECT name FROM product_tbl WHERE name REGEXP '^[aeiou]';
更多建議: