SQL模糊查询及扩展正则表达式的使用

本文介绍两种SQL模糊查询方法:完全匹配法(LIKE/NOT LIKE)和部分匹配法(REGEXP/NOT REGEXP)。通过示例展示如何使用这些方法来查找特定模式的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模糊查询时,均不能使用=或!=。本文中用"dot"替代"."

模糊查询分为两张方法:


1.完全匹配法(LIKE/NOT LIEk)

_ 表示一个字符
% 表示一个或多个字符
[charlist] 字符列中的任何单一字符
[^charlist]/[!charlist] 不在字符列中的任何单一字符


查找含有'w'的行:

SELECT * FROM pet WHERE name LIKE '%w%';

查找包含正好5个字符的行:

SELECT * FROM pet WHERE name LIKE '_____';


2.部分匹配法(REGEXP/NOT REGEXP/RLIKE/NOT RLIKE)

先对比下一般正则表达式: 
X* 表示X出现0次或多次
dot 匹配任意一个字符
dot* 匹配一串任意字符

SQL的扩展正则表达式:
"X" 表示X出现0次或多次
dot 匹配任意一个字符
"*" 匹配一串任意字符


查找含有'w'的行:

select * from pet where name regexp 'w';

查找包含正好5个字符的行:

SELECT * FROM pet WHERE name REGEXP '^.....$';

或使用“{n}”重复n次操作符,重写前面的查询:

SELECT * FROM pet WHERE name REGEXP '^.{5}$';

查找只匹配名称首字母的小写'b':

SELECT * FROM pet WHERE name REGEXP BINARY '^b';


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值