當sql語句中!=遇到null發生的故事

今天測試過程發現個問題,sql語句中!=不起作用,原sql語句如下(執行結果是0列):

select * from company_member_rel 
 where companyId=111552 and active !='N'


數據庫中,表company_member_rel部分數據如下:

如果companyId=111573則正常;

後來去研究下sql中的null,原來在sql中null是表示未知的類型,我們用常規的比較操作符去操作一個未知的東西是沒有任何意義的,所以,sql返回的是0個結果,即使null=null在sql中也是沒有意義的,判斷“未知”=“未知”是否成立,這顯然沒有意義,兩個未知的東東怎麼比較呢。

所以上述問題想要有結果,可以將sql語句寫成如下:

select * from company_member_rel 
 where companyId=111552 and (active !='N' or active is null) 


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