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

產生根源

好比咱們有三條數據,對應的列名是delete_flag,對應的數據是‘normal’,‘delete’,null。
此時咱們查全部不等於delete的記錄,咱們指望的是兩條記錄 normal和null。咱們書寫以下sql。mysql

select * from a where delete_flag != 'delete'

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

解決

一、進行一下非null判斷code

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

二、將null空值也加入條件orm

select * from a where delete_flag != 'delete' or delete_flag is null
相關文章
相關標籤/搜索