你有所不知的MySQL正则表达式

1、 什么是正则表达式

正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本。
说白了就是起到匹配结果集的作用,从结果集中查询到符合开发者想要的数据。

MySQL中的正则表达式需要使用到的关键字是:REGEXP

话不多说,上才艺!!!
在这里插入图片描述

对于MySQL使用正则表达式,很多猿友一开始会联想到MySQL的模糊查询

SELECT * FROM user WHERE user_name LIKE '%张三';

是的没错,模糊查询的确能干正则所能干的事,但是,所能干的也只有两个方面。

  1. % :匹配多个字符
  2. _ :匹配一个字符

正则所能进行的匹配条件更多,重点来了!重点来了!重点来了!

二、正则表达式

1、^ :匹配输入字符串的开始位置,也就是匹配的数据以指定的字符作为开头。
SELECT product_name FROM product WHERE product_name REGEXP '^小米'; 
#匹配以“小米”开头的数据

查询结果
在这里插入图片描述

2、$ :匹配输入字符串的结束位置,也就是匹配的数据以指定的字符进行结尾。
SELECT product_name FROM product WHERE product_name REGEXP '小米$'; 
#匹配以“小米”结尾的数据

查询结果
在这里插入图片描述

3、. :匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使用像 ‘[.\n]’ 的模式。
SELECT product_name FROM product WHERE product_name REGEXP '.小米.'; 
#范围[0,1],相当于模糊查询的 '_小米_'

查询结果
在这里插入图片描述

4、[…] :字符集合。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。
SELECT product_name FROM product WHERE product_name REGEXP '[小米]'; 
#匹配'小'或者'米'任意一个字符

查询结果
在这里插入图片描述

5、[ ^ … ] :与 […] 相反
SELECT product_name FROM product WHERE product_name REGEXP '[^小米]';
 #不匹配’小米‘

查询结果
在这里插入图片描述

6、| :多种选择匹配模式
SELECT product_name FROM product WHERE product_name REGEXP '小米|仪器';
#匹配的数据中存在'小米'或者'仪器'

查询结果
在这里插入图片描述

7、* :匹配前面的子表达式出现0次或者多次,相当于{0,N}
SELECT product_name FROM product WHERE product_name REGEXP '仪器*';

查询结果
在这里插入图片描述

8、+ :匹配前面的子表达式出现1次或者多次,相当于{1,N}
SELECT product_name FROM product WHERE product_name REGEXP '仪器+';

查询结果
在这里插入图片描述

9、{n} : 设置数据进行匹配的次数
SELECT product_name FROM product WHERE product_name REGEXP '小米{1}';
 #匹配数据集中包含一个小米字段的数据

查询结果
在这里插入图片描述

10、{n,m} :设置最小的匹配次数和最大的匹配次数
SELECT product_name FROM product WHERE product_name REGEXP '小米{1,4}'; 
#匹配的数据中至少有一个'小米'字段或者最多只有四个'小米'字段

查询结果
在这里插入图片描述

三、总结

正则表达式在每一种编程语言中都存在,为数据的提供了高效的查找方式,也节约了开发者对数据的处理时间,但是正则使用不正确也会带来难以发现的数据查询错误,所以好用、方便的前期是你得使用得正确。

上述皆是个人理解,有不正确还望各位猿友指出,😁😏😎。
创作不易,还望点个赞鼓励鼓励!!!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值