2

!= NULL当我使用OR运行选择查询时,我得到不同的结果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 企业版。
4

3 回答 3

2

文档中:

由于任何与 NULL 的算术比较的结果也是 NULL,因此您无法从此类比较中获得任何有意义的结果。

所以基本上IS NOT NULL实际上会做你想做的事,而!=不会做任何有用的事情(因为它也只会 return NULL)。

于 2013-06-20T23:29:44.203 回答
0

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

于 2013-06-20T23:31:02.897 回答
0

NULL任何带有返回的比较或操作,NULL除了IS NULL.

布尔值NULL被认为是错误的。

<> NULL因此,像,等表达式= NULL总是错误的。

这是 ANSI 标准行为。

于 2013-06-20T23:31:09.633 回答