Mysq中模式匹配

模式匹配是数据库的一项标准化功能,一般的数据库都会提供两个模式检索符号_和%,已经模式检索关键字like、not like。

_代表匹配单个字符,而%表示匹配0到多个字符。like表示包含,而not like表示不包含。

除了标准的模式匹配外,Mysql还提供了模式匹配的拓展——正则匹配。

创建一张学生表

CREATE TABLE `student` (
  `name` char(30) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表中的记录如下

name
张三
李四
张三丰
王五
吴五

正则匹配相关的关键字是rlike和not rlike,正则式中支持了一些拓展的匹配符:

1.ab:表示字符a且字符b,即串'ab'

2.点号.:表示匹配任意的单个字符

找出姓名中姓张的人名

select * from student where name rlike '张.';

需要注意的是.只管匹配一个字符,而不理会该字符后面是否还有字符,输出结果如下

name
张三
张三丰

3.-:表示一个联系区间a-z表示所有小写字母,0-9表示所有数字

4.[]:表示取其中的一个字符,[a-z]表示取小写字母中的一个,[ab]表示取字符a或者字符b

5.*:用来表示数量,0个或者多个,[a-z]*表示多个字符

6.^:表示开头匹配

查找姓名中以张开头的

select * from student where name rlike '^张';
输出结果

name
张三
张三丰

7.&:表示结尾匹配

查找姓名中以五结尾的

select * from student where name rlike '五$';
输出结果

name
王五
吴五



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值