博客
关于我
在SQL中使用正则表达式
阅读量:526 次
发布时间:2019-03-07

本文共 1367 字,大约阅读时间需要 4 分钟。

MySQL正则表达式是数据库查询中非常强大的工具,它可以帮助我们对字符串进行复杂的匹配操作。以下是几种常见的正则表达式匹配方式,以及如何在实际应用中使用它们。

1. 在字符串的开头进行匹配

我们可以通过正则表达式在字符串的开头进行匹配。例如,假设我们想要匹配字符串开头的字符。

mysql> select 'wqh' regexp '^w';

执行以上命令会返回以下结果:

| 'wqh' regexp '^w' |
| 1 |

这表示字符串'wqh'的开头字符'w'与正则表达式^w匹配。

2. 在字符串的末尾进行匹配

同样地,我们也可以在字符串的末尾进行匹配。例如,匹配字符串末尾的字符。

mysql> select 'wqh' regexp 'h$';

执行以上命令会返回以下结果:

| 'wqh' regexp 'h$' |
| 1 |

这表示字符串'wqh'的末尾字符'h'与正则表达式h$匹配。

3. 匹配任意单个字符,包括换行符

正则表达式还可以用于匹配任意单个字符,包括换行符。例如,匹配字符串中的任意一个字符。

mysql> select 'abcd' regexp '.c', 'abcd' regexp '.f';

执行以上命令会返回以下结果:

| 'abcd' regexp '.c' | 'abcd' regexp '.f' |
| 1 | 0 |

这意味着字符串'abcd'中包含字符'c',但不包含字符'f'。

4. 匹配括号内的任意字符

正则表达式中,方括号可以用来匹配一组字符。例如,匹配字符串中的特定字符。

mysql> select 'abcdefh' regexp '[fhk]';

执行以上命令会返回以下结果:

| 'abcdefh' regexp '[fhk]' |
| 1 |

这表示字符串'abcdefh'中包含字符'f'、'h'或'k'。

实例应用

在实际应用中,我们可以结合这些正则表达式来过滤数据。例如,匹配电子邮件地址中的特定结构。

mysql> select first_name,email from customer where email regexp "@163[,.]com$";

执行以上命令会返回以下结果:

| first_name | email              |
| 11 | bj@163.com |
| 11 | bsssj@163.com |

这表示电子邮件地址中包含@163.com的邮件地址符合匹配条件。

如果不使用正则表达式,我们可以使用LIKE关键字来实现类似的功能。

mysql> select first_name,email from customer where email like "%@163%.com" or email like "%@163%,com";

执行以上命令会返回以下结果:

| first_name | email              |
| 11 | bj@163.com |
| 11 | bsssj@163.com |

这与使用正则表达式的结果一致,表明两种方法在某些情况下可以互相替代。

转载地址:http://mibnz.baihongyu.com/

你可能感兴趣的文章
Mysql 学习总结(86)—— Mysql 的 JSON 数据类型正确使用姿势
查看>>
Mysql 学习总结(87)—— Mysql 执行计划(Explain)再总结
查看>>
Mysql 学习总结(88)—— Mysql 官方为什么不推荐用雪花 id 和 uuid 做 MySQL 主键
查看>>
Mysql 学习总结(89)—— Mysql 库表容量统计
查看>>
mysql 实现主从复制/主从同步
查看>>
mysql 审核_审核MySQL数据库上的登录
查看>>
mysql 导入 sql 文件时 ERROR 1046 (3D000) no database selected 错误的解决
查看>>
mysql 导入导出大文件
查看>>
mysql 常用
查看>>
MySQL 常用列类型
查看>>
mysql 常用命令
查看>>
Mysql 常见ALTER TABLE操作
查看>>
mysql 往字段后面加字符串
查看>>
mysql 快速自增假数据, 新增假数据,mysql自增假数据
查看>>
Mysql 报错 Field 'id' doesn't have a default value
查看>>
MySQL 报错:Duplicate entry 'xxx' for key 'UNIQ_XXXX'
查看>>
mysql 排序id_mysql如何按特定id排序
查看>>
Mysql 提示:Communication link failure
查看>>
mysql 插入是否成功_PDO mysql:如何知道插入是否成功
查看>>
Mysql 数据库InnoDB存储引擎中主要组件的刷新清理条件:脏页、RedoLog重做日志、Insert Buffer或ChangeBuffer、Undo Log
查看>>