sql 语句中关于 not in 和 null 的问题简单解析

理解这个问题,只需要记住一个逻辑:

  null 和任何值比较运算都返回的 false

Ex:

SQL01: SELECT * FROM userinfo WHERE age NOT IN(18)

SQL01 查询结果里面不会包含 age字段为null 的情况,因为条件的意思翻译为 age<>18 ,
但是 null 和任何值比较运算都返回的false, 所以为null的条件行不会被查询出来


SQL02: SELECT * FROM userinfo WHERE age NOT IN(18,null)
SQL02 不管什么数据,最后的查询结果都是空集合
因为条件本质翻译过来就是: age<>18&&age<>null,  由此可以看出 age<>null 这个条件永远都是false,

 

posted @ 2019-10-23 11:25  Young汨  阅读(2170)  评论(0编辑  收藏  举报