MySQL--用正则表达式进行搜索

本文介绍了MySQL中如何使用正则表达式进行数据查询,包括基本字符匹配、特殊字符转义、字符类的运用以及定位符的使用。还对比了LIKE和REGEXP在查询上的区别,并提供了实例来展示如何匹配多个实例和特定模式。
摘要由CSDN通过智能技术生成

一、使用MySQL正则表达式
1、1基本字符匹配(REGEXP后面的东西作为正则表达式处理)

select DeviceNO,DeviceName from device where LocationX REGEXP '1198' order by LocationX; 

在这里插入图片描述
1.2使用正则表达式.0。表示匹配任意一个字符

 select DeviceNO,DeviceName from device where LocationX REGEXP '.0' order by LocationX;

在这里插入图片描述
1.3若使用.00返回空值(位数没有00的数,如100,500等)
在这里插入图片描述
1.4 LIKE与REGEXP区别:
like匹配整个列。若被匹配的文本在列值中出现,like将不会找到它,相对应的行也不会返回(除非使用通配符)。而REGEXP在列值内进行匹配,若匹配的文本在列值中出现,REGEXP将会找到它,将返回相对应的行。

1.5 匹配特殊字符
为了匹配特殊字符,必须使用\为前导,\-表示查找-,\.表示查找.

查找.
 select DeviceNO,DeviceName from device where LocationX REGEXP '\\.' order by LocationX;

\也可以引用元字符(具有特殊含义的字符)
\f --换页;\n–换行;\r–回车;\t–制表;\v–纵向制表;

1.6 匹配字符类

 存在找出经常使用的数字、所有字母或所有数字字母字符等的匹配。
 [:alnum:] 任意字母和数字(同[a-zA-Z0-9][:alpha:]	任意字符(同[a-zA-Z][:blank:]	空格和制表(同[\\t][:cntrl:]	ASCII控制字符(ASCII0到31127[:digit:]	任意数字(同[0-9][:graph:][:print:]相同,但不包括空格
 [:lower:]	任意小写字母(同[a-z][:print:]	任意可打印字符
 [:punct:]	既不在[:alnum:]又不在 [:cntrl:]的任意字符
 [:space:]	包括空格在内的任意空白字符(同\\f\\n\\r\\t\\v)
 [:upper:]	任意大写字母([A-Z])
 [:xdigit:]	任意十六进制数字

1.7 匹配多个实例

select DeviceNO,DeviceName from device where LocationX REGEXP '\\([0-9] sticks?\\)' order by LocationX;
输出:	TNT(1 stick)
		TNT(5 sticks)

1.7.1 使用 [:digit:]

 select DeviceNO,DeviceName from device where LocationX REGEXP '[[:digit:]]{4}' order by LocationX;

在这里插入图片描述
1.8 定位符(^)

select DeviceNO,DeviceName from device where LocationX REGEXP '^[[:digit:]]{4}' order by LocationX;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44119674

觉得有帮助,鼓励下吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值