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

来源:互联网 发布:android wear源码下载 编辑:程序博客网 时间:2024/06/04 19:14
模糊查询时,均不能使用=或!=。本文中用"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';