私はこのようになりますテーブル内の単一の列を持っている:NULLカラムに対してWHERE句を使用すると、mySQL selectクエリで結果が返されません。
(フィールド3は、私はSQLクエリを実行するためにQTODBC7.0を使用NULLであり、このアプリケーションは、NULLフィールドがクエリに空白表示されます。むしろ、テキスト「NULL」を表示するよりも結果、)
次のように私は、単純なSQLクエリを持っている:
select * from table where field3 <> 'randomstring'
私は、クエリがフィールド3には一致しないすべてのフィールドを返すことを期待'randomstring'の値です。
カラム 'field3'は 'randomstring'の値と等しくないため、クエリに返す必要があります。
奇妙なことが起こります:
上記のクエリは何も返しません!
FIELD3のでNULLに等しく、それゆえ、行は私のクエリに等しい返されるべき「randomstring」はありませんが、そうではありません。
私はいくつかのテストを行いましたが、これはfield3がNULLだがfield3が空の文字列(NULLでない)に等しい場合に発生することがわかりました。
field3にNULL値が含まれている可能性がある場合、select文を動作させるにはどうすればよいですか?
使用 'COLUMN3がnull値をチェックするNULL'されるための条件が
true
に評価され、このようなクエリで:したがって、あなたはjarlhによって提案されたソリューションを使用する必要があります。 – jarlh
オプションは['<=>'](https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#operator_equal-to)演算子に等しいNULL安全です。 – wchiquito