null列的值不參與比較

2021-09-02 16:40:18 字數 481 閱讀 8294

假如資料庫有表emp:

empno name   age

001      lucy      22

002      lily        null

003      lilei       null

004      lucy      null

005      pear      null

006      pear      null

當執行sql:

select empno from `emp` where age != 22;

返回的竟然一條都沒有;

結論:null值是不參與比較的, age != 22 , 所有null的那些列都被過濾去掉了.

關鍵時刻注意這個特性. 

在sql中,null值與任何其它值的比較(即使是null)永遠不會為「真」。包含null的表示式總是會匯出null值

如果不匹配則返回null值

我遇到乙個問題,因為某些原因我無法確定.我正在嘗試編寫乙個連線兩個表的查詢,其中可能在表中找不到匹配項.如 select table1.idfield,table2.idfield from table1 left outer join table2 on table1.personid table...

資料庫中的NULL值比較

在程式語言中,邏輯表示式的值只有兩種 true和false,而在資料庫中卻並非如此。關聯式資料庫中起邏輯表示式作用的並非只有兩種,還有一種稱為三值邏輯的表示式 這裡的三值邏輯表示式指的就是unknow。當在進行真假狀態判斷而又不能明確知道該狀態是true還是false時,那麼它就屬於unknow狀態...

mysql中 與null值不能比較

在mysql中,選擇某field為不等於某值的時候,使用 符號。但查bug時發現該field為null的並不能查出來。查原因為 null值不能與其他值進行比較,只能使用is null或is not null來進行判斷。所以,限制條件需要寫 field is null or field value 這...