2011-12-27 5 views
1

列の値がNULLの表から列を選択したいとします。例えばMySQLの複数の列のNULLのテスト

SELECT * FROM table1 WHERE column1 IS NULL; 

上記のクエリは、カラム1は任意の値を有していない行を返します。

しかし、私は(どこcolumn1の、column2の、....)

私は空想方法はありませんMYSQL

答えて

5
SELECT * 
FROM table1 
WHERE coalesce(column1, column2, column3) IS NULL; 

あなたは、すべての必要な列を列挙しなければなりません。

SELECT * 
FROM table1 
WHERE column1 IS NULL or column2 IS NULL; 
:少なくとも単一の列は、あなたが使用する必要がありますNULLであるかどうかをチェックしたい場合は

UPD

(私はこれはハックです告白する必要があり、生産コードでは使用しないでください)

+0

ありがとう、これは私の問題を解決しました。 :) – Santosh

+0

@gbn、 'coalesce'の結果がnullであるかどうかのチェックが失敗する例を示してください。 – newtover

+1

そして、これはすべてのカラムが同じか互換性のあるデータ型を持っていると仮定しますが、暗黙の変換規則が緩やかであるため、MySQL用にのみ動作します。 – gbn

4

でこれを使用する複数の列を返したい:あなたはすべての列をテストする必要があり

SELECT * FROM table1 
WHERE 
column1 IS NULL AND 
column2 IS NULL AND 
... 
columnn IS NULL; 
+0

すべての列名にIS NULLを指定したくない – Santosh

+0

@ user838893:*あなたが*使用している*と同じではないものがあります。 – gbn

+0

+ 1コードの可読性/保守性のため+1。 – xQbert