9. Mysql 模糊查询和正则表达式

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 9. Mysql 模糊查询和正则表达式

一、模糊查询

1.1 LIKE运算符

在MySQL中,可以使用LIKE运算符进行模糊查询。LIKE运算符用于匹配字符串模式,其中可以使用通配符来表示任意字符或字符序列。

示例代码

SELECT * FROM table_name WHERE column_name LIKE 'pattern';
  • table_name:要查询的表名
  • column_name:要查询的列名
  • pattern:要匹配的模式

通配符

  • %:表示任意字符序列(包括空字符)
  • _:表示任意单个字符

示例

SELECT * FROM users WHERE name LIKE '%John%';

以上示例将返回所有名字中包含"John"的用户。

1.2 NOT LIKE运算符

NOT LIKE运算符用于排除符合指定模式的结果。

示例代码

SELECT * FROM table_name WHERE column_name NOT LIKE 'pattern';

示例

SELECT * FROM users WHERE name NOT LIKE '%John%';

以上示例将返回所有名字中不包含"John"的用户。

1.3 REGEXP运算符

REGEXP运算符用于基于正则表达式进行模糊查询。正则表达式是一种强大的模式匹配工具,可以用于更复杂的模式匹配。

示例代码

SELECT * FROM table_name WHERE column_name REGEXP 'pattern';

示例

SELECT * FROM users WHERE name REGEXP '[Jj]ohn';


以上示例将返回所有名字中包含以"J"或"j"开头,后面跟着"ohn"的用户。

二、正则表达式

2.1 正则表达式基础

正则表达式是一种用于匹配字符串模式的工具。它使用一种特定的语法来描述要匹配的模式。

基本元字符

  • .:匹配任意字符
  • ^:匹配字符串的开始位置
  • $:匹配字符串的结束位置
  • []:匹配指定字符集中的任意一个字符
  • [^]:匹配任意不在指定字符集中的字符
  • *:匹配前面的元素零次或多次
  • +:匹配前面的元素一次或多次
  • ?:匹配前面的元素零次或一次
  • |:匹配两个或多个表达式中的任意一个

示例代码

SELECT * FROM table_name WHERE column_name REGEXP 'pattern';

2.2 REGEXP运算符

在MySQL中,可以使用REGEXP运算符基于正则表达式进行模糊查询。

示例代码

SELECT * FROM table_name WHERE column_name REGEXP 'pattern';

示例

SELECT * FROM users WHERE name REGEXP '^[A-Za-z]+$';


以上示例将返回所有名字只包含字母的用户。

2.3 RLIKE运算符

RLIKE运算符是REGEXP运算符的同义词,可以使用RLIKE代替REGEXP进行正则表达式匹配。

示例代码

SELECT * FROM table_name WHERE column_name RLIKE 'pattern';

示例

SELECT * FROM users WHERE name RLIKE '^[A-Za-z]+$';

以上示例将返回所有名字只包含字母的用户。

参考资料

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
关系型数据库 MySQL
Mysql基础第十二天,用正则表达式进行搜索
Mysql基础第十二天,用正则表达式进行搜索
53 0
Mysql基础第十二天,用正则表达式进行搜索
|
7月前
|
SQL 存储 JSON
MySQL模糊查询二三事
### 1、源数据信息 源数据字段:Student表字段Names 存储内容为"111,222,333,444,555,666,777,888" ### 2、查询请求入参 ``` json { "Names": "666,888" } ``` ### 3、具体需求 需要拿到既包含666又包含888,直接模糊查询或者Contains之类的无法满足 ### 4、方法实现 ###### 方法一: // 纯SQL语句 ``` c# var nameSql = string.Empty; for (int i = 0; i < namesList.Count; i++) {
62 0
|
3月前
|
搜索推荐 关系型数据库 MySQL
MySQL 模糊查询新纪元:超越 LIKE+% 的高效探索
在数据库的日常操作中,模糊查询是一项不可或缺的功能,它允许我们根据不完全匹配的关键字来检索数据。传统上,MySQL 使用 LIKE 关键字配合 % 通配符来实现这一功能,虽然灵活但性能上往往不尽如人意,尤其是在处理大型数据集时。今天,我们将一起探索几种超越 LIKE+% 的模糊查询技术,以提升查询效率与用户体验。
385 2
|
5月前
|
SQL 关系型数据库 MySQL
MySQL模糊查询二三事
在实际应用中,根据需求和实际数据情况,选择合适的模糊查询方法并优化查询模式,是确保查询效率和准确性的关键。复杂的查询模式往往需要详细的测试和调优,以达到最佳的性能与响应时效。
189 4
|
5月前
|
关系型数据库 MySQL
MySQL 保姆级教程(七):用正则表达式进行搜索
MySQL 保姆级教程(七):用正则表达式进行搜索
|
5月前
|
关系型数据库 MySQL
mysql模糊查询指定根据第几个字符来匹配
mysql模糊查询指定根据第几个字符来匹配
235 1
|
6月前
|
SQL 关系型数据库 MySQL
MySQL通配符和正则表达式
MySQL通配符和正则表达式
62 1
|
6月前
|
关系型数据库 MySQL 数据库
Python中使用MySQL模糊查询的方法
(1)同样需要将your_username、your_password、your_database替换为我们的MySQL数据库的实际用户名、密码和数据库名。 (2)在mysql.connector.connect()中,我们没有直接指定字符集和游标类型,因为mysql-connector-python的默认配置通常已经足够好。但是,如果需要,我们可以添加这些配置选项。 (3)使用cursor.close()和cnx.close()来确保游标和连接都被正确关闭。 (4)mysql-connector-python也支持使用上下文管理器(即with语句)来自动管理游标和连接的关闭,但这需要创建一个
|
6月前
|
关系型数据库 MySQL
MySQL中如何处理NULL值以及如何使用正则表达式
MySQL中如何处理NULL值以及如何使用正则表达式
|
8天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
72 15