MySQL 中 不等於 會過濾掉 Null 的問題

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

例:表A
A1 B1
1 0
2 1
3 Null

執行如下查詢:

SELECT * FROM A WHERE B1 != 1

得到的結果如下:

A1 B1
1 0

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

要查出第三列只需將SQL 改爲如下語句 即可。

SELECT * FROM A WHERE B1 != 1 OR B1 is Null

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

目前我使用的方法是:

SELECT * FROM A WHERE IFNULL(B1,'')  != 1

開發中遇到的問題,在此坐下記錄,謹防下次入坑。
如果有問題,歡迎指出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章