MySQL查詢對NULL的處理
阿新 • • 發佈:2019-02-04
where 記錄 hone expr 流程 算術 想要 運算符和 算術運算符
有一個字段blist,如果查詢where blist <> ‘B‘時為什麽那些blist為NULL的記錄查不出?怎麽寫才能查出NULL值記錄?
回答:
Null 值不能使用普通的算術運算符來比較,對這些它什麽都不返回。 只能靠你自己的邏輯流程,在查詢語句中再添加where blist<>‘B‘ or blist is null;
在SQL中,NULL值在於任何其他值甚至NULL值比較時總是假的(FALSE)。包含NULL的一個表達式總是產生一個NULL值,除非在包含在表達式中的運算符和函數的文檔中指出。在下列例子,所有的列返回NULL:
如果你想要尋找值是NULL的列,你不能使用=NULL測試。下列語句不返回任何行,因為對任何表達式,expr = NULL是假的:
mysql> SELECT * FROM my_table WHERE phone = NULL;
要想尋找NULL值,你必須使用IS NULL測試。下例顯示如何找出NULL電話號碼和空的電話號碼:
mysql> SELECT * FROM my_table WHERE phone IS NULL;
mysql> SELECT * FROM my_table WHERE phone = "";
為了有助於NULL的處理,你能使用IS NULL和IS NOT NULL運算符和IFNULL()函數。
再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow
MySQL查詢對NULL的處理