- MariaDB 教程
- MariaDB - 首页
- MariaDB - 简介
- MariaDB - 安装
- MariaDB - 管理
- MariaDB - PHP 语法
- MariaDB - 连接
- MariaDB - 创建数据库
- MariaDB - 删除数据库
- MariaDB - 选择数据库
- MariaDB - 数据类型
- MariaDB - 创建表
- MariaDB - 删除表
- MariaDB - 插入查询
- MariaDB - 选择查询
- MariaDB - WHERE 子句
- MariaDB - 更新查询
- MariaDB - 删除查询
- MariaDB - LIKE 子句
- MariaDB - ORDER BY 子句
- MariaDB - JOIN
- MariaDB - NULL 值
- MariaDB - 正则表达式
- MariaDB - 事务
- MariaDB - ALTER 命令
- 索引和统计表
- MariaDB - 临时表
- MariaDB - 表克隆
- MariaDB - 序列
- MariaDB - 管理重复项
- MariaDB - SQL 注入防护
- MariaDB - 备份方法
- MariaDB - 备份加载方法
- MariaDB - 常用函数
- MariaDB 常用资源
- MariaDB - 快速指南
- MariaDB - 常用资源
- MariaDB - 讨论
MariaDB - 正则表达式
除了 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 不区分大小写,二进制字符串除外。
下面列出了可用的模式表:
| 序号 | 模式及描述 |
|---|---|
| 1 |
^ 匹配字符串的开头。 |
| 2 |
$ 匹配字符串的结尾。 |
| 3 |
. 匹配单个字符。 |
| 4 |
[...] 匹配括号中列出的任何字符。 |
| 5 |
[^...] 匹配括号中未列出的任何字符。 |
| 6 |
p1|p2|p3 匹配任何模式。 |
| 7 |
* 匹配前一个元素的 0 个或多个实例。 |
| 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]';
广告