MySQL使用正则表达式查询

         在MySQL中,使用REGEXP关键字指定正则表达式的字符匹配模式。

正则表达式常用的字符匹配列表
选项描述例子匹配值示例
^匹配文本的开始字符^b:匹配以b开头的字符串book,big,banana
$匹配文本的结束字符st$:匹配以st结尾的字符串test,persist,reist
.匹配任意单个字符b.t:匹配b和t之间一个字符的字符串bit,bat,bite,but
*匹配零个或多个在它前面的字符

f*n:匹配n前面0个或多个f字符的字符串

fn,fan,abcn
+匹配前面的字符一次或者多次ba+:匹配以b开头后面紧跟一个或多个a的字符串ba,bay,battle,bare
<字符串>匹配包含指定的字符串文本fa:匹配包含“fa”的字符串fan,faad,afa
[字符集合]匹配字符集合中的任意一个字符'[xz]':匹配x或者zddizzy,zebra,extra
[^]匹配不在括号中的任意字符'[^abc]':匹配任何不包含a、b、c的字符串desk,fox
{n}匹配前面的字符串至少n次b{2}:匹配至少有两个b字符的字符串bbbb,bb,bbbbbb
{n,m}m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。b{2,4}:匹配最少有两个,最多四个b字符的字符串bbb,bb,bbbb

1.查询以特定字符或字符串开头的记录(^)

例如:查询以“b”开头的记录。

select * from 表名 where name REGEXP '^b';

 

2.查询以特定字符或字符串结尾的记录($)

例如:查询以“be”开头的记录。

select * from 表名 where name REGEXP 'be$';

 

3.替代字符串中任意一个字符(.)

例如:查询a与g之间有一个字符的记录。

select * from 表名 where name REGEXP 'a.g';

 

4.匹配多个字符(*)

*:匹配零个或多个它前面的字符

+:匹配至少一次前面的字符

如:f*n 表示匹配零个或多个 f 字符的字符串

例1:查询以b开头,后面有零个或多个a字母的记录。

select * from 表名 where name REGEXP '^ba*';

例2:查询以b开头,后面有至少一个a字母的记录。

select * from 表名 where name REGEXP '^ba+';

 

5.匹配指定字符串

例如:查询包含 on 的记录。

select * from 表名 where name REGEXP 'on';

把'on'改为'on|ap'表示,包含on或者ap都行。

 

6.匹配指定字符串任意一次([字符])

例如:表中字段值包含字母o或t的记录。

select * from 表名 where name REGEXP '[ot]';

[456] = [4-6],表示包含4,5,6中的其中一个。

 

7.匹配指定字符以外的字符 ([^字符])

[^字符集合]:表示匹配不在集合中的任意字符。

例如:查询字段中包含a~e和1~6以外的字符记录。

select * from 表名 where name REGEXP '[^a-e1-6]';

 

8.指定字符串连接出现的次数 ({n,m})

例如:查询name字段中至少出现两次“x”的记录。

select * from 表名 where name REGEXP 'x{2,}';

{n,}:表示匹配至少n次前面的字符。

{n,m}:表示匹配前面的字符串不少于n次,不多于m次。

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

healthLau

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值