今天測試過程發現個問題,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)