mysql不等於判斷時,空值過濾問題


產生根源

比如我們有三條數據,對應的列名是delete_flag,對應的數據是‘normal’,‘delete’,null。
此時我們查所有不等於delete的記錄,我們期望的是兩條記錄 normal和null。我們書寫如下sql。

select * from a where delete_flag != 'delete'

發現查詢出來的結果只是一條,這是因為mysql的空值過濾機制。

解決

1、進行一下非null判斷

select * from a where IFNULL(delete_flag,'')  != 'delete'

2、將null空值也加入條件

select * from a where delete_flag != 'delete' or delete_flag is null


免責聲明!

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



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