2017-08-17 21 views
0

私はテーブルのパワーを持っています。ここではすべてのis_ *フィールドのSUMが得られ、それをcntカラムに格納します。そこに間違って何複数の列の合計を持つ値を更新

UPDATE 
    power 
SET 
cnt = (SUM(IFNULL(is_yellow, 0)) + 
    SUM(IFNULL(is_green, 0)) + 
    SUM(IFNULL(is_blue, 0))) 

id | is_yellow | is_green | is_blue | cnt 
1 | 1   | 1  | null | -> 2 
2 | null  | 1  | null | -> 1 
3 | 1   | 1  | 1  | -> 3 

クエリバックUpdateで "グループ機能の無効な使用" を与えますか?

答えて

1

あなたはこのためにCOALESCEを使用することができます。

UPDATE 
    power 
SET 
    cnt = COALESCE(is_yellow, 0) + 
     COALESCE(is_green, 0) + 
     COALESCE(is_blue, 0) 

フィールドがnullの場合は、0を加えて使用されます。

関連する問題