Mysq中模式匹配

来源:互联网 发布:抚仙湖尸库 知乎 编辑:程序博客网 时间:2024/06/07 05:06

模式匹配是数据库的一项标准化功能,一般的数据库都会提供两个模式检索符号_和%,已经模式检索关键字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王五吴五


0 0
原创粉丝点击