模糊查询时,均不能使用=或!=。本文中用"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';