2013-06-20 69 views
2

當我使用!= NULLIS NOT NULL運行select查詢時,會得到不同的結果。在MySql中有什麼區別!= NULL和IS NOT NULL

/** No results returned.*/ 
     SELECT * 
     FROM PORT_INFO 
     WHERE PORT_CODE != NULL; 

    /** Results are returned.*/ 
    SELECT * 
    FROM PORT_INFO 
    WHERE PORT_CODE IS NOT NULL; 
  • 我的表中,列PORT_CODE可爲空。
  • 柱的類型是VARCHAR(4)。
  • MySql版本5.5.13企業版。

回答

2

documentation

因爲與NULL任何算術比較的結果也是NULL,則無法獲得這種比較的任何有意義的結果。

所以基本上IS NOT NULL會怎麼做你想要什麼,而!=會做什麼有用的(因爲它也只會返回NULL)。

0

在SQL中,沒有值,該值等於NULL,NULL包括本身。爲了得到你所期望的,使用IS NOT NULL。

0

NULL的任何比較或操作均返回NULL,但IS NULL除外。

一個NULL布爾被認爲是假的。

因此,像<> NULL,= NULL等這樣的表達總是錯誤的。

這是ANSI標準行爲。

相關問題