2

!= NULLORを使用して選択クエリを実行すると、異なる結果が得られます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;
  • My Table では、PORT_CODE 列が null 可能です。
  • 列のタイプは VARCHAR(4) です。
  • MySql バージョン 5.5.13 エンタープライズ。
4

3 に答える 3

2

ドキュメントから:

NULL との算術比較の結果も NULL であるため、このような比較から意味のある結果を得ることができません。

したがって、基本的にIS NOT NULLは実際に意図したことを実行しますが、!=何も役に立ちません (それも単に を返すためNULL)。

于 2013-06-20T23:29:44.203 に答える
0

SQL では、NULL 自体を含め、NULL と等しい値はありません。期待どおりの結果を得るには、IS NOT NULL を使用します。

于 2013-06-20T23:31:02.897 に答える
0

を除くすべての比較または操作は、 をNULL返します。NULLIS NULL

NULLブール値は false と見なされます。

したがって、 、 などの式<> NULL= NULL常に false です。

これは ANSI 標準の動作です。

于 2013-06-20T23:31:09.633 に答える