like、rlike、regexp的用法及区别

本文详细介绍了like、rlike和regexp在数据检索中的用法和区别。like主要配合通配符进行模糊查询,rlike支持正则表达式的多种匹配模式,包括包含、不包含、开头、结尾等,而regexp与rlike功能相同。文中通过实例展示了它们在查询学生表中的应用,突出了rlike在效率和灵活性上的优势。

在数据检索和处理过程中常有一些双胞胎甚至三胞胎操作符来混淆我们的视听,今天我们聊一下like、rlike、regexp的区别及用法。

一、like操作符

1、用法:

1) 模糊查询能手:like操作符 + 通配符“_”或“%”或“[]”。

2) like匹配按字符逐一匹配,即使有一个字符不一样,也不会匹配成功。

2、通配符:

1) “_”仅表示一个字符,“%”表示一个或多个字符或空格,“[]”中指定字符、字符串或范围,要求所匹配对象为其中的任何一个。

2)通配符可以出现在任何位置。如:“_希望”,“大_望”,“大希_”,“_希_”。

举个例子,从学生表(student)中搜索姓“高”的同学的姓名和性别。

select  name,sex from student where name like "高%"

再举个例子,从学生表(student)中搜索高幸福,高幸运,高幸好,高幸亏同学,咱们用“[]”实现,感受一下它的用法。这个时候它的用法其实类似于正则表达式。

select  name,sex from student  where name like "高幸[福运好亏]"

二、rlike操作符

1、模糊查询字段中包含某关键字的信息。

如:查询所有包含“希望”的信息:select * from student where name rlike '希望'

2、模糊查询某字段中不包含某关键字信息。

如:查询所有包含“希望”的信息:select * from student where name not rlike '希望'

3、模糊查询字段中以某关键字开头的信息。

如:查询所有以“大”开头的信息:select * from student where name not rlike '^大'

4、模糊查询字段中以某关键字结尾的信息。

如:查询所有以“大”结尾的信息:select * from student where name not rlike '大$'

5、模糊匹配或关系,又称分支条件。

如:查询出字段中包含“幸福,幸运,幸好,幸亏”的信息:

select * from student where name  rlike '幸福|幸运|幸好|幸亏'

注意正则表达式或关系的表达方式为 |

上述例子中,只要字段中含有幸福,幸运,幸好,幸亏的信息都会取出,不必一字不差,这也正是rlike的好用之处,虽然有时like+通配符也会达到rlike的效果,但是通配符的查询效率相对较低,耗时较长。

三、regexp操作符

regexp==rlike 与rlike用法相同,果真是双胞胎,亲兄弟,此处不再赘述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值