mysql字符串模式匹配规则

likenot like

重点:利用_匹配单个字符,%匹配任意数目字符(包括0个)。

为了方便讲解,这里先列出user表的内容

1. 以x开头的name
select * from user where name like "x%";

2. 以G结尾的name
select * from user where name like "%G";


从结果中可以看出,like不区分大小写。

3. 包含t的name
select * from user where name like "%u%";


正则表达式匹配

规则在「另一篇文章中」有粗略提到,这里做个补充
同样是在where中使用,关键字为regexp
.匹配单个字符,
[a-z]匹配从az之间的小写字母,
[0-9]匹配从09之间的数字,相当于\d
正则表达式区分大小写,即[a]只能匹配a,不能匹配A,但mysql中似乎不区分大小写
如果希望规则匹配的是开头文本,就使用^,如果希望在结尾,就使用$,两者可以一起使用。

1. 匹配包含一个t的name
select * from user where name regexp "t";

2. 匹配以x开头的name
select * from user where name regexp "^x";

3. 匹配以o结尾的name
select * from user where name regexp "o$";

4. 匹配有两个字符的uid
select * from user where uid regexp "^..$" limit 0, 5;


这里是用通配符完成的,也可以用{n}完成

select * from user where uid regexp "^.{2}$" limit 0, 5;

最后,吐槽下csdn本身
写个MySQL语句教程也能莫名奇妙的「待审核」
不过,说不定是因为检测系统自身乱加了什么敏感词呢

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值