概要
本文简单介绍SQL中LIKE、NOT LIKE模糊查询语句的使用以及常见注意事项。
通配符
LIKE、NOT LIKE语句可以使用两个通配符“%”和“_”:
- 百分号(%):可以匹配任意长度(0至多个字符)的字符;
- 下划线(_):可以匹配且只能匹配单个字符;
使用示例
下面用user_info表举例:
示例1
查询所有名字中带“三”的用户:
select * from user_info t where t.name like '%三%'
示例2
查询所有姓张的用户:
select * from user_info t where t.name like '张%'
示例3
查询所有姓张的且名字只有一个字用户:
select * from user_info t where t.name like '张_'
示例4
查询所有名字中不带“三”的用户:
select * from user_info t where t.name not like '%三%'
总结
使用LIKE、NOT LIKE模糊查询语句有两个比较容易出错的地方需要注意:
- 百分号(%)可以匹配0个字符,一个下划线(_)只能匹配一个字符;
- NOT LIKE不能查询空,例4中,名字中不带“三”的用户其实有两个:李四和一个没有名字的用户,想要全部查出来应该加个or name is null;