SQL常用语句--模糊查询REGEXP

REGEXP 是正则表达式(regular expression) 的缩写 . 正则表达式在搜索字符串时非常强大. 它允许我们搜索更复杂的模式。

模糊匹配

1)包含特定字符串

sql 复制代码
SELECT *
FROM customers
WHERE last_name REGEXP 'field'  -- 查找名字中带field的记录

2)我们可以用 '^' 表示字符串的开头,

sql 复制代码
SELECT *
FROM customers
WHERE last_name REGEXP '^field' -- 表示我们的姓氏必须以field开头

3)我们还用美元符号 $ 代表字符串末尾,

sql 复制代码
SELECT *
FROM customers
WHERE last_name REGEXP 'field$' -- 表示我们的姓氏必须以field结尾

搜寻多个单词

表示查询以field开头的姓氏或者姓氏中含有mac或者姓氏中含有rose

sql 复制代码
SELECT *
FROM customers
WHERE last_name REGEXP '^field|mac|rose'

假设你想搜寻姓氏里有 e 的顾客,

如果你想要确保在e前要有g或者i两者之一, 这时需要用到方括号\[\],在括号里加上多个字母, 比如g,I,m,对应了任何姓氏里有ge或者ie或者me的顾客.

sql 复制代码
SELECT *
FROM customers
WHERE last_name REGEXP '[gim]e' -- 可以用 '[a-h]e' 表示 '[abcdefg]e'.

总结:

sql 复制代码
^:beginning
$:end
|:logical or
[abcd]:使用 [] 匹配任意在括号里列举的单字符.
a-f:表示 [abcdefg], - 代表一个范围.
相关推荐
IT大白鼠2 小时前
MySQL 分布式集群系列 · 第四篇——实操部署指南:从零搭建生产级 MySQL NDB 集群
数据库·分布式·mysql
IT大白鼠3 小时前
MySQL 分布式集群系列 · 第三篇——核心原理精讲:NDB 自动分片、多主写入与数据同步
数据库·分布式·mysql
Elastic 中国社区官方博客3 小时前
教程:使用 ES|QL 进行威胁狩猎
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索·安全威胁分析
斑马1395 小时前
Linux软件编程学习笔记(十三)——数据库
数据库·oracle
初願致夕霞5 小时前
MySQL_索引
数据库·mysql
十六年开源服务商5 小时前
2026网站备份方案完整指南
数据库·oracle
一只小李郁vickie6 小时前
mysql 开启压缩传输3402条数据2.1秒压缩到毫秒级
数据库·mysql
张继雁6 小时前
张继雁 个人技术简介|磨削加工过滤方向
大数据·数据库·论文阅读·人工智能·机器学习·创业创新·业界资讯
IvorySQL7 小时前
PostgreSQL 日报|不重启动态修改 shared_buffers(9 月 8 日)
数据库·postgresql
这个DBA有点耶7 小时前
2026年做数据库开发,国产数据库已经是绕不开的选项了
数据库·dba·敏捷开发