除了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也不区分大小写,二进制字符串除外.
可以使用的可能模式表在下面和下面给出;
Sr.No | Pattern&描述 |
---|---|
1 | ^ 它匹配字符串的开头. |
2 | $ 它匹配字符串的结尾. |
3 | . 匹配单个字符. |
4 | [...] 它匹配括号中的任何字符. |
5 | [^ ...] 它匹配括号中未列出的任何字符. |
6 | p1 | p2 | p3 它匹配任何模式. |
7 | * 它匹配前面的0个或更多个实例ding element. |
8 | + 它匹配前一个元素的1个或多个实例. |
9 | {n} 它匹配前一个元素的n个实例. |
10 | {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]';