0
点赞
收藏
分享

微信扫一扫

like和regexp的区别

黎轩的闲暇时光 2022-05-02 阅读 194

看了好多资料,关于like和regexp的区别,很多说的都不清楚,偶然看到了这个,还稍微清楚点。

区别1: 'XXX%'和 ‘XXX.’

select sid,sname,sage from student where sname like ‘李%’;

select sid,sname,sage from student where sname regexp ‘李.’

以上的语句是模糊查询中最常使用的语句类型了,两段语句都是要查询student表内姓李的学生的相关信息,但是like查询后面跟的是’李%‘,regexp查询后面则跟的是 ‘李.’,“%”和“.”起到的作用基本上是相同的,我们也应该知道like查询中“%”也可以放在关键字前面比如’%云’,正则表达式就可以写为’.云’。

区别2:正则表达式表示对大小写傻傻分不清楚

select sid,sname,sage from student where birthplace like ‘S%’;

select sid,sname,sage from student where birthplace regexp ‘S.’

以上两段语句看起来是查询出生地是以大写字母S开头的学生的相关信息,区别like就可以很精确的完成任务,然而正则表达式不但会在birthplace那一列搜寻大写字母S开头的值所对应的信息,也会搜寻小写字母s开头的值所对应的学生信息。当然了这种毛病还是可以抢救一下的,方法就是在regexp后面加上’bianry’关键字,binary是二进制的意思,我表示不理解为什么要用这么个关键字,无论如何,regexp binary语句就可以识别出大小写了

区别3:正则表达式表示其他的方面

select * from student where sname like ‘[李周]%’;

select * from student where sname regexp ‘[李周].’;

以上两条语句,第一条不返回任何值,第二条却可以返回姓李或者周的同学的相关信息,且还有另外一种表发方法喔,请看下面的代码

select * from student where sname regexp ‘李|周.’;

即在regexp表达式内, '[XY].'和’X|Y.'的作用是相同的,系不系很溜

基本区别就先讲到这里吧,下面附上本人做的一些关于二者常用用法的总结,供大家参考,如果大家发现有啥不对的,还望不吝赐教啊,蟹蟹蟹蟹蟹蟹蟹~~

举报

相关推荐

SQL中LIKE和REGEXP简单对比

0 条评论