解决MySql不等于的条件过滤字段值为NULL问题
作者:煜恒天成
今天遇到一个查询结果不对的问题,使用isNull能解决问题,但因查询条件过滤null,还有不同的写法,总结了两种实现方式,希望能给大家一个参考
MySql不等于的条件过滤字段值为NULL
今天,一哥们提出这个问题,写sql时遇到查询结果不对的情况,使用is Null能解决问题。
但是,经查阅,发现是因为查询条件过滤null的情况,还有不同的写法。
例如:表1
字段1 | 字段2 | 字段3 |
A | 1 | 1 |
B | 2 | 2 |
C | Null | Null |
查询SQL
selecct * from 表一 where 字段2 != 1
查询结果:
字段1 | 字段2 | 字段3 |
B | 2 | 2 |
你会发现,第三列为空的数据没有查询出来。
解决方式
SELECT * FROM 表一 WHERE 字段2 != 1 OR 字段2 is Null
上面这种方法最通俗,网上也最多,但是我总是感觉效率太低。
另一种实现方式:
SELECT * FROM 表一 WHERE IFNULL(字段2,'') != 1
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。