MySQL 正则表达式

2023年 4月 27日 37.4k 0

在前面的章节我们已经了解到MySQL可以通过 LIKE ...% 来进行模糊匹配。 MySQL 同样也支持其他正则表达式的匹配, MySQL中使用 REGEXP 操作符来进行正则表达式匹配。 如果您了解PHP或Perl,那

在前面的章节我们已经了解到MySQL可以通过 LIKE ...% 来进行模糊匹配。

MySQL 同样也支持其他正则表达式的匹配, MySQL中使用 REGEXP 操作符来进行正则表达式匹配。

如果您了解PHP或Perl,那么操作起来就非常简单,因为MySQL的正则表达式匹配与这些脚本的类似。

下表中的正则模式可应用于 REGEXP 操作符中。

模式描述

^匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。

$匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。

.匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用像 '[.\n]' 的模式。

[...]字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。

[^...]负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。

p1|p2|p3匹配 p1 或 p2 或 p3。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。

*匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。

+匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。

{n}n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。

{n,m}m 和 n 均为非负整数,其中n

实例

了解以上的正则需求后,我们就可以根据自己的需求来编写带有正则表达式的SQL语句。以下我们将列出几个小实例(表名:person_tbl )来加深我们的理解:

查找name字段中以'st'为开头的所有数据:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';

查找name字段中以'ok'为结尾的所有数据:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

查找name字段中包含'mar'字符串的所有数据:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

查找name字段中以元音字符开头或以'ok'字符串结尾的所有数据:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';

上一篇:MySQL NULL 值处理
下一篇:MySQL 事务

相关文章

解析MySQL存储过程、常用函数代码
mysql实现的雪花算法
MySQL数据库如何修改表结构
史上最全MySQL使用规范分享
mysql 出现1071错误怎么办
mysql 出现1290错误怎么办
mysql 3306端口无法访问怎么办
mysql 触发器有几种
mysql 如何查看是否自动提交
mysql 出现1062错误怎么办
如何启动MySQL服务
mysql 如何关闭服务器

网友评论

相关栏目

mssql

navicat
mysql
nosql

postgresql

oracle

db2

access

mariadb

redis

最近更新

解析MySQL存储过程、常用函数代码
mysql实现的雪花算法
MySQL数据库如何修改表结构
史上最全MySQL使用规范分享
mysql 出现1071错误怎么办
mysql 出现1290错误怎么办
mysql 3306端口无法访问怎么办
mysql 触发器有几种
mysql 如何查看是否自动提交
mysql 出现1062错误怎么办
如何启动MySQL服务
mysql 如何关闭服务器
mysql 如何查看表的大小
如何查看mysql中表的存储引擎类型
mysql 出现1267错误怎么办

热门文章

MYSQL中 char 和 varchar的区别
MySQL8.0 如何快速加列
聊聊MySQL中的参数
MySQL的自增ID(主键) 用完了的解决方法
MySQL中的悲观锁与乐观锁
JDBC-idea导入mysql连接java的jar包(mac)的方法
MySQL 选择合适的存储引擎
Mysql脏页flush及收缩表空间原理解析
Mysql读写分离过期常用解决方案
mysql常用备份命令和shell备份脚本分享
Mysql误删数据解决方案及kill语句原理
MySQL 数据查重、去重的实现语句
Mysql复制表三种实现方法及grant解析
Mysql临时表及分区表区别详解
Mysql join联表及id自增实例解析



严禁网站镜像,否则我们将追究法律责任.本站声明:网站部分内容来源于网络,如有侵权,请联系我们,我们将及时处理 站务处理QQ:4961311

CopyRight © 2012-2020 每日运维 558idc.com , All Rights Reserved.

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论