2014-07-01 74 views
1

我使用簡單WHERE子句使用NotEqualTo比較來從一個表中的記錄。具有諷刺意味的是,它並沒有返回recrod,其中列沒有任何價值MySQL的奇怪行爲comaprison運算符(!=/<>),即NotEqualTo

查詢

SELECT * FROM TABLE WHERE COL<>'Something' 

上面的查詢將返回所有記錄,其中COL isNotEqual的東西,但是,它不會返回那些COL是NULL

這是爲什麼?

它應該返回記錄,其中COL是空/空,因爲它仍然滿足,這不等於「東西」

+4

不退還其中'col'包含'NULL'值,因爲那是怎樣的SQL工作。您需要了解'NULL'值和SQL。 MySQL文檔是一個很好的開始:http://dev.mysql.com/doc/refman/5.7/en/working-with-null.html。 –

+1

它不是空的,它是'NULL'。 – raina77ow

回答

0

Okies謝謝你們幫了我的條件。我不知道這種行爲。對於其他人來處理這個問題,我作如下修改查詢以獲得所需結果:

SELECT * FROM TABLE WHERE COL IS NULL OR COL<>'Something' 
+0

注:空字符串不一樣'NULL' – Sadikhasan

+0

@Sadikhasan:真的,所以我的查詢仍然會返回空列數,對不對? –

+0

是的,因爲你的條件'COL <>'Something''對於空字符串 – Sadikhasan