MySQL之-查询操作常常遇到的坑
MySQL的select条件查询操作,使用语法select 列名 from 表名 where 列 运算符 值
where关键字后可跟一个或多个条件,来过滤记录,将满足条件的记录返回。除去常用查询运算符,在具体的使用过程中会有部分需要注意的地方或可能遇到的问题。
条件查询-不等于
<>、!=
注:<>是最早的用法。!=是后来加上的。两种写法的意义相同,<>的可移植性更好,如为了更好的照顾不同版本移植性,SQL语句中可尽量使用<>
NULL值查询
对应null值的查询需要用到专门的条件:is null 或 is not null。其他的条件查询会忽略null值。如:
select * from user where name like '%'
如果name有null值的情况,则无法查询出相应的数据。注:查询运算符
like
、between and
、in
、not in
对null值查询不起作用。
<=>安全等于
<=>可以查询null值如:
select * from user where name <=> null
like
select * from user;
select * from user where name like '%';
以上两个SQL查询的结果是什么?
结果分两种情况:
1、如果name没有null值,则两个SQL的查询结果相同。
2、如果name有null值,则sql2会忽略name为null的数据记录。
总结:
null值查询需要使用is null或is not null查询,其他的查询运算符对null值无效。
建表时,尽量设置表的字段不为null,给字段一个默认值。
<=>安全等于可读性比较差,玩玩就好建议少使用。