mysql : 使用不等於過濾null的問題


在寫sql時遇到查詢結果不對的情況,經查閱,發現是因為查詢條件過濾null的問題;從網上找到如下資料:

 

在寫SQL 條件語句是經常用到 不等於‘!=’的篩選條件,此時要注意此條件會將字段為null的數據也當做滿足不等於的條件而將數據篩選掉。

例:表A

用 select * from A where B1 != 1查詢時得到的結果為:

第三列 B1為空的也是會篩選掉的。

因為 NULL 不是一個「值」,而是「沒有值」。「沒有值」不滿足「值不等於1」這個條件。所以 mysql 盡量不要默認值是 NULL。

 

要查出第三列只需將SQL 改為 :select * from A where B1 != 1 or B1 is null 即可。

上面這種方法最通俗,網上也最多,但是我總是感覺效率太低。

目前我使用的方法是:select * from A where IFNULL(B1,'')  != 1

開發中遇到的問題,做下記錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM