除了LIKE子句提供的模式匹配之外,MariaDB还通过REGEXP运算符提供了基于正则表达式的匹配。运算符基于指定模式对字符串表达式执行模式匹配。
MariaDB 10.0.5引入了对PCRE正则表达式的支持,这大大增加了匹配到递归模式、前瞻断言等领域的范围。
查看给出的标准REGEXP运算符语法:
SELECT column FROM table_name WHERE column REGEXP '[PATTERN]';
对于模式匹配,REGEXP返回1,如果没有模式匹配,则返回0。
相反的选项以NOT REGEXP的形式存在。MariaDB还提供了REGEXP和NOT REGEXP、RLIKE和NOT RLIKE的同义词,它们是出于兼容性原因而创建的。
比较的模式可以是文字字符串或其他东西,如列。在字符串中,它使用C转义语法,所以将任何“\”字符转义。REGEXP也不区分大小写,但二进制字符串除外。
下面给出了可以使用的模式:
^:匹配字符串的开头。
$:匹配字符串的结尾。
.:匹配单个字符。
[...]:匹配括号中的任何字符。
[^...]:匹配括号中未列出的任何字符。
p1|p2|p3:匹配任何一种模式。
*:匹配前面元素的0个或多个实例。
+:它匹配前面元素的一个或多个实例。
{n}:匹配前面元素的n个实例。
{m,n}:它匹配前面元素的m到n个实例。
查看下面给出的模式匹配示例
查找以“pr”开始的产品:
SELECT name FROM product_tbl WHERE name REGEXP '^pr';
查找以“na”结尾的产品:
SELECT name FROM product_tbl WHERE name REGEXP 'na$';
以元音开头的产品:
SELECT name FROM product_tbl WHERE name REGEXP '^[aeiou]';
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理