欢迎来到MySQL实战第71篇,修炼500篇,就是为了给自己一个肯定。
【理论基础】
<1>* :重复零次或更多次
<2>+:重复一次或更多次
<3>?:重复零次或多次
<4>{n}:重复n次
<5>{n,}:重复n次或更多次
<6>{n,m}:重复n到m次
<7>a|b:ab两项之间进行选择
<8>[abc]:定义匹配的字符范围是abc
<9>[^aeiou]:匹配除了aeiou这几个字符以外的任意字符
<10>.匹配除了换行符以外的任意字符
【正则表达式在MySQL中运用】
1.数据表环境
2.在fruits表中,查询水果名称f_name包含an或p的记录(|两边可以写单个字符,也可以写字符串)
select * from fruits where f_name regexp 'an|p';
2.在fruits表中,查询水果名称f_name包含b或p的记录([]只能匹配单个字符)
select * from fruits where f_name regexp '[bp]';
3.在fruits表中,查询水果名称f_name匹配字符集中除去a到x的其他字符的记录
select * from fruits where f_name regexp '[^a-x]';
4.在fruits表中,查询水果名称f_name不包括xyz字符的记录
select * from fruits where f_name not regexp '[xyz]';
5.在fruits表中,查询水果名称f_name中ab连续出现最少2次字符的记录
select * from fruits where f_name regexp '(ba){2,}';
6.在fruits表中,查询水果名称f_name中ab连续只出现2次字符的记录
select * from fruits where f_name regexp '(ba){2,}'and f_name not regexp '(ba){3,}';
7._与.的区别
注意:<1>_属于通配符范畴用like,而.属于正则表达式范畴用regex。
<2>____y表达的意思是y前面有且有四个字符,....y的意思是y前面至少有4个字符
select * from fruits where f_name regexp '....y';
select * from fruits where f_name regexp '.....y';
select * from fruits where f_name like '____y';
求关注,让一起我们修炼500篇,我们的MySQL!