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