在寫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
開發中遇到的問題,在此坐下記錄,謹防下次入坑。
如果有問題,歡迎指出。