MySQL 正则表达式,MYSQL 通过正则表达式进行匹配查询

举报
简简单单Onlinezuozuo 发表于 2022/02/19 00:19:28 2022/02/19
【摘要】 文章目录 MySQL 正则表达式,MYSQL 通过正则表达式进行匹配查询1、如何使用,语法2、regexp 模式3、几个demo MySQL 正则表达式,MYSQL 通过正...

MySQL 正则表达式,MYSQL 通过正则表达式进行匹配查询


1、如何使用,语法

select * from 表名 where 字段名称 regexp '正则表达式' 

  
 
  • 1

2、regexp 模式

模式 说明
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n’ 或 ‘\r’ 之前的位置。
. 匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使用象 ‘[.\n]’ 的模式。
[…] 字符集合。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。
[^…] 负值字符集合。匹配未包含的任意字符。例如, ‘[^abc]’ 可以匹配 “plain” 中的’p’。
在这里插入图片描述 匹配 p1 或 p2 或 p3。例如,'z
* 匹配前面的子表达式零次或多次。例如,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 次。

3、几个demo

1、查找name字段中以’st’为开头的所有数据:

SELECT name FROM person_tbl WHERE name REGEXP '^st';

  
 
  • 1

2、查找name字段中以’ok’为结尾的所有数据:

SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

  
 
  • 1

3、查找name字段中包含’mar’字符串的所有数据:

SELECT name FROM person_tbl WHERE name REGEXP 'mar';

  
 
  • 1

4、查找name字段中以元音字符开头或以’ok’字符串结尾的所有数据:

SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';

  
 
  • 1

文章来源: wretchant.blog.csdn.net,作者:简简单单OnlineZuozuo,版权归原作者所有,如需转载,请联系作者。

原文链接:wretchant.blog.csdn.net/article/details/89320787

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。