MySQL必知必会——第9章 用正则表达式进行搜索

什么是正则表达式
匹配。

有哪些正则表达式?
.000 匹配任意一个字符

LIKE是进行通配符匹配,REGEXP是进行正则表达式匹配
REGEXP是regular expression(正则表达式)的意思

LIKE和REGEXP的重要区别?
①LIKE使用’XXX%’,REGEXP使用’XXX.’
即在LIKE中使用%,在REGEXP使用.表示相同的含义
②LIKE区分大小写,REGEXP不区分大小写
如果想让REGEXP区分大小写,在REGEXP后面加上BINARY
③select * from student where sname like ‘[李周]%’;

结果:不返回任何值
select * from student where sname regexp ‘[李周].’;
结果:返回姓李或者周的同学的相关信息

等价的改写形式:select * from student where sname regexp ‘李|周.’

正则表达式进行or匹配
举例:

SELECT prod_name
FROM products 
WHERE  prod_name REGEXP '1000|2000|3000'
ORDER BY prod_name 

|表示匹配其中之一
|与in,or起的作用相同

[]是另一种形式的or语句
举例:

SELECT prod_name
FROM products 
WHERE prod_name REGEXP '[123]Ton'
ORDER BY prod_name;

如上语句 1Ton,2Ton,3Ton语句都匹配
[^]字符集可以被否定,匹配除指定字符外的任何东西

匹配范围
举例

SELECT prod_name
FROM products
WHERE prod_name REGEXP '[1-5] ton'
ORDER BY prod_name;

匹配特殊字符([],|,.)
为了匹配特殊字符,必须用\为前导,例如\.表示查找.
为了匹配\字符本身,需要使用\
[:digital:]用来匹配任意数字

定位符
匹配特定位置的文本
在这里插入图片描述

发布了90 篇原创文章 · 获赞 8 · 访问量 8256

猜你喜欢

转载自blog.csdn.net/weixin_43854189/article/details/102658235