理解這個問題,只需要記住一個邏輯:
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,