2

次のようなテーブルがあります。

id    name (varchar)
--------------------------
1     test
2     some
3     NULL
4     test

クエリするとき

SELECT * FROM table WHERE name != 'some';

私は結果を得る:

id    name
--------------------------
1     test
4     test

で行を返さないのはなぜname == NULLですか?

サーバー バージョン: 5.5.31-MariaDB-1~squeeze-log - mariadb.org バイナリ ディストリビューション (プロトコル バージョン 10)

クライアント バージョン: libmysql - 5.1.66 (mysqli) プロトコル バージョン: 10

4

3 に答える 3

3

と比較するとNULLになるからUNKNOWNです。IS演算子を使用する必要があります。

SELECT * FROM table
WHERE name != 'some' 
OR    name IS NULL
于 2013-07-22T11:52:31.620 に答える
2

の場合、次を使用して同等化する代わりにNULL使用する必要がありますWHERE name IS NULL==

詳細については、MySQL ドキュメント ( 3.3.4.6. Working with NULL Values )を参照してください。

「MySQL NULL」のstackoverflowを検索すると、多くの同一の質問が得られます

于 2013-07-22T11:52:23.297 に答える
0

NULLと同等ではないためですEmpty StringNULL単に存在しないか不明Empty Stringですが、長さゼロの値です。を含めて検索したい場合NULL。その後、条件で指定できます。

SELECT * FROM table WHERE name != 'some' OR name IS NULL
于 2013-07-22T11:54:32.830 に答える