今天,一哥们提出这个问题,写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
写篇文章,记录这个问题