MySQL 正则表达式

《MySQL 正则表达式》要点:
本文介绍了MySQL 正则表达式,希望对您有用。如果有疑问,可以联系我们。

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

MySQL 正则表达式

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 <= m.最少匹配 n 次且最多匹配 m 次.

实例

MySQL 正则表达式

了解以上的正则需求后,我们就可以更加本身的需求来编写带有正则表达式的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 正则表达式

如您还有不明确的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!

编程之家培训学院每天发布《MySQL 正则表达式》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

相关文章

MySQL 死锁 是指两个或多个事务互相等待对方持有的锁,从而导...
在MySQL中,InnoDB引擎通过Next-Key Locking技术来解决幻读问...
在数据库事务管理中,Undo Log 和 Redo Log 是两种关键日志,...
case when概述 sql语句中的case语句与高级语言中的switch语句...
其实很简单,只是为了忘记,做个记录,用的时候方便。 不管是...
1.进入服务,找到mysql服务,在属性里找到mysql的安装路径 2...