MySQL 支持正则表达式的匹配, MySQL中使用 REGEXP 操作符来进行正则表达式匹配。
下表中的正则模式可应用于 REGEXP 操作符中。
^ | 匹配输入字符串的开始位置。 |
$ | 匹配输入字符串的结束位置。 |
. | 匹配除 "\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 <= m。最少匹配 n 次且最多匹配 m 次。 |
实例
了解以上的正则表达式的规则后,我们就可以根据自己的需求来编写带有正则表达式的SQL语句。以下将列出几个小实例(表名:runoob_tbl 来加深我们的理解:
MariaDB[RUNOOB]>select*from runoob_tbl;
+-----------+---------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+---------------+---------------+-----------------+
|1|Learn PHP |JohnPoul|2007-05-24|
|2|LearnMySQL|Abdul S |2007-05-24|
|3| JAVA Tutorial|Sanjay|2007-05-06|
+-----------+---------------+---------------+-----------------+
3 rows inset(0.00 sec)
查找runoob_author字段中以'Jo'为开头的所有数据:
MariaDB [RUNOOB]> SELECT * FROM runoob_tbl WHERE runoob_author REGEXP '^Jo';
+-----------+--------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+--------------+---------------+-----------------+
| 1 | Learn PHP | John Poul | 2007-05-24 |
+-----------+--------------+---------------+-----------------+
1 row in set (0.00 sec)
查找runoob_author字段中以'y'为结尾的所有数据:
MariaDB [RUNOOB]> SELECT * FROM runoob_tbl WHERE runoob_author REGEXP 'y$';
+-----------+---------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+---------------+---------------+-----------------+
| 3 | JAVA Tutorial | Sanjay | 2007-05-06 |
+-----------+---------------+---------------+-----------------+
1 row in set (0.00 sec)
查找runoob_author字段中包含'du'字符串的所有数据:
MariaDB [RUNOOB]> SELECT * FROM runoob_tbl WHERE runoob_author REGEXP 'du';
+-----------+--------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+--------------+---------------+-----------------+
| 2 | Learn MySQL | Abdul S | 2007-05-24 |
+-----------+--------------+---------------+-----------------+
1 row in set (0.00 sec)
查找runoob_author字段中以元音字符开头或以'ay'字符串结尾的所有数据:
MariaDB [RUNOOB]> SELECT * FROM runoob_tbl WHERE runoob_author REGEXP '^[aeiou]|ay$';
+-----------+---------------+---------------+-----------------+ | runoob_id | runoob_title | runoob_author | submission_date | +-----------+---------------+---------------+-----------------+ | 2 | Learn MySQL | Abdul S | 2007-05-24 | | 3 | JAVA Tutorial | Sanjay | 2007-05-06 | +-----------+---------------+---------------+-----------------+ 2 rows in set (0.00 sec)
相关推荐
### MySQL正则表达式详解 #### 一、引言 MySQL作为一款广泛使用的数据库管理系统,在进行数据查询时提供了丰富的功能支持。其中,正则表达式是处理文本数据的强大工具之一,能够帮助用户更加灵活地进行数据筛选。...
本文实例讲述了mysql正则表达式(regexp和rlike)的搜索功能。分享给大家供大家参考,具体如下: 我们知道正则表达式是描述搜索模式的特殊字符串。 它是一个强大的工具,为我们提供一种简洁灵活的方法来识别基于模式...
MySQL 的正则表达式 MySQL 的正则表达式是 SQL 语言的一个子集,能够匹配基本的字符、字符串。以下是 MySQL 正则表达式的相关知识点: 1. 基本匹配:REGEXP 可以匹配基本的字符、字符串。例如:select * from wp_...
### MySQL正则表达式知识点详解 #### 一、MySQL中正则表达式的使用场景与功能 MySQL中的正则表达式是一种强大的工具,主要用于文本搜索和数据处理任务中。通过使用正则表达式,用户可以执行复杂的字符串匹配操作,...
如今,正则表达式已经成为众多语言及工具——Perl、PHP、Java、Python、Ruby、MysQL、VB.NET和c#(以及.NET Framework中的任何语言)——中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本...
MySQL中的正则表达式(Regex)是一种强大的查询工具,用于定义字符串匹配的模式。这些模式可以用来进行复杂的文本搜索和替换操作。在MySQL中,正则表达式功能主要通过`REGEXP`运算符来实现。 1. **基础概念**: - ...
首先,SQL Server 2008 R2的标准版并未内置正则表达式函数,这与某些其他数据库系统(如PostgreSQL或MySQL)不同。但是,我们可以借助T-SQL中的存储过程或者一些外部工具来弥补这个功能的缺失。 1. **使用 CLR ...
如今,正则表达式已经成为众多语言及工具--Perl、PHP、Java、Python、Ruby、MysQL、VB-NET和c#(以及.NETFramework中的任何语言)--中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本处理。...
### 正则表达式的全面掌握 #### 一、正则表达式概述 正则表达式是一种功能强大的文本处理工具,可以用于在各种编程语言中进行数据的搜索、替换以及提取等操作。它作为一种标准特性已经广泛应用于多种流行的语言与...
如今,正则表达式已经成为众多语言及工具——Perl、PHP、Java、Python、Ruby、MysQL、VB-NET和c#(以及.NETFramework中的任何语言)——中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本...
MySQL中的正则表达式是一种强大的文本匹配工具,它允许用户使用特定的模式来搜索和处理字符串数据。在SQL查询中,正则表达式通常通过`REGEXP`关键字来使用,以提供比`LIKE`谓词更复杂的匹配能力。本教程将引导你入门...
正则表达式是一种强大的文本处理工具,用于在字符串中匹配、查找、替换或提取特定模式。在编程和数据处理领域,正则表达式是不可或缺的一部分,但编写复杂的正则表达式往往需要深厚的知识和大量的实践。为了简化这一...
在多种编程语言中,如Perl、Java、JavaScript、C#、PHP、Python、Ruby、Tcl、MySQL、Oracle等,正则表达式都扮演着重要的角色。 学习正则表达式可以做以下事情: 1. **查找字符串**:你可以使用正则表达式来检查一...
如今,正则表达式已经成为众多语言及工具——Perl、PHP、Java、Python、Ruby、MySQL、VB.NET和C#(以及.NET Framework中的任何语言)——中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本...
1. 正则表达式 2. 实例 3. 参考 1. 正则表达式 2. 实例 3. 参考
正则表达式与MySQL是两种在信息技术领域中至关重要的工具,它们在数据处理、查询优化以及文本分析等方面发挥着核心作用。本参考文档旨在提供一个综合性的指南,帮助用户理解和应用这两种技术。 正则表达式(Regular...
Struts2、Spring、MySql和正则表达式是软件开发中的核心技术和工具,它们各自在不同的领域发挥着重要作用。 Struts2是一个基于MVC(Model-View-Controller)架构的开源Java Web框架,用于构建可维护性高、结构清晰...
虽然标准SQL不直接支持正则表达式,但许多数据库系统如MySQL、PostgreSQL、Oracle和SQL Server提供了扩展函数来实现正则表达式的功能,如MySQL的`REGEXP`或SQL Server的`PATINDEX`。 在毕业设计中,正则表达式是一...
正则表达式在MySQL中的应用是数据库查询中的一个重要部分,它允许我们进行复杂的数据筛选和匹配操作。在MySQL中,正则表达式主要用于`WHERE`子句中的`REGEXP`或`RLIKE`操作符,使得我们可以根据模式匹配来查询数据。...