MySQL查询对NULL的处理
生活随笔
收集整理的這篇文章主要介紹了
MySQL查询对NULL的处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有一個字段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()函數。
回答: 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://my.oschina.net/liangzhenghui/blog/211640
總結
以上是生活随笔為你收集整理的MySQL查询对NULL的处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java ui线程_UI线程异常处理方法
- 下一篇: pandas读取excel带汉字的列头_