我有一個表中的單個列,看起來像這樣:對NULL列使用WHERE子句時,mySQL select查詢不返回結果。
(場爲NULL我使用QTODBC7.0執行SQL查詢,而這個應用使得NULL字段查詢顯示爲空白。結果,而不是顯示文本「NULL」)
我有一個簡單的SQL查詢,如下所示:
select * from table where field3 <> 'randomstring'
我希望查詢返回的所有字段,其中場3不等於'randomstring'的值。
'field3'這一列不等於'randomstring'的值,因此它應該在查詢中返回。
一個奇怪的事情發生了:
上述查詢返回任何內容!
場3等於NULL,因此,它不等於因此「randomstring」,該行應該在我的查詢返回的,但事實並非如此。
我做了一些測試,並發現,這是當field3爲NULL但不是如果field3等於空白字符串(不爲NULL)時引起的。
當field3中可能有NULL值時,如何使select語句正常工作?
使用'欄3 IS NULL'檢查null值
在這樣的查詢條件進行評估,以
true
如果字段3的值是NULL 。 – jarlh一個選項是['<=>'](https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#operator_equal-to)與操作符相等的NULL安全。 – wchiquito