0

重複の可能性:
column = NULLが行を返さないのはなぜですか?

特定の列の値がnullであるmysqlデータベースから行をクエリしようとしています。クエリは次のとおりです。

SELECT * FROM `mytable` WHERE mycolumn=null

実際、私はブール列を3方向スイッチとして使用しています。ここで、0、1、およびnullは異なる結果に使用されることを意味します。

上記のクエリはゼロの結果セットを返します。これを削除するwhere mycolumn=nullと、指定された列の値がnullである行が含まれる正しい結果が返されます。

4

3 に答える 3

4

Column=nullは常にnullを返します

試行列がnullです

SELECT * FROM `mytable` WHERE mycolumn is null
于 2012-09-16T20:07:44.907 に答える
1

あなたは使用する必要があります

SELECT * FROM `mytable` WHERE mycolumn is null

参照:http ://dev.mysql.com/doc/refman/5.1/en/working-with-null.html

于 2012-09-16T20:09:24.057 に答える
1

SQLでは、の概念は不明nullに類似しています。未知のものは、実際には何にも等しくなることはできません。

このため、式自体が別のnullに評価されるため、真になることはありません(つまり、X = nullxがnullに等しいかどうかは不明です)。null = null

代わりに、IS NULL値がnullに設定されているかどうかを判断するために使用できます。

SELECT * FROM `mytable` WHERE mycolumn is null

...または、null値を別の値に合体させることができます。

于 2012-09-16T20:11:38.803 に答える