1. 程式人生 > >mysql中不等於過濾null的問題

mysql中不等於過濾null的問題

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

例:表A

A1 B1
10
21
3NULL

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

A1B1
10

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

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

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

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

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