在MySql中,!= NULL和IS NOT NULL之间的区别是什么

时间:2013-06-20 23:28:26

标签: mysql isnull

当我使用!= NULLIS 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 enterprise。

3 个答案:

答案 0 :(得分:2)

来自documentation

  

因为与NULL进行任何算术比较的结果也是NULL,所以无法从这种比较中获得任何有意义的结果。

所以基本上IS NOT NULL实际上会按照您的意图行事,而!=将无效(因为它也只会返回NULL)。

答案 1 :(得分:0)

在SQL中,没有值等于NULL,包括NULL本身。要获得您期望的结果,请使用IS NOT NULL。

答案 2 :(得分:0)

NULL的任何比较或操作都会返回NULL,但IS NULL除外。

NULL布尔值被认为是假的。

因此,<> NULL= NULL等表达式始终为false。

这是ANSI标准行为。