2009-07-23 4 views
4

私のビューに追加するデータがNULLであるかどうかをチェックするためにケースを入れる必要があります。この場合、ゼロを入力するかしないかを選択します。MySQLビューでデータがNULLかどうかチェックする

+0

私は混乱しています:

SELECT IF('field' IS NULL, 0, 'field')... 

も ​​"IFNULL()" があります。私の知る限りでは、SELECTのデータベース内の情報を追加または更新することはできません。あなたは '0'を返しますか?そして、私はあなたが「かどうか」のビットで何を意味するのか不明です。もう少し詳しい情報を提供してください。 – MitMaro

答えて

12

このような意味ですか?

SELECT IFNULL(`field`, 0)... 
+1

これは、より一般的に受け入れられているCOALESCE()が良いアイデアであるIF()とIFNULL()を誤用する典型的なケースです。 – longneck

2

テーブルを作成するときは、列の説明にNOT NULLを追加してください。何もデータがフィールドに指定されていない場合

CREATE TABLE ( ID INT NOT NULL default '0' );

それからそれはあなたがSELECTクエリを実行すると、検索されるデフォルト値の0に設定されています。

+1

たとえば、NULLがLEFT OUTER JOINの結果である場合、これは適用されません。 – longneck

7
select coalesce(field, 0) as 'field' from v; 

doc

関連する問題