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,

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM