2017-08-17 59 views
0

我有一個表的力量,在那裏我得到了所有我的is_ *字段的SUM並將其存儲在cnt列中。更新值與多列的總和

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

查詢回饋上更新 「無效使用組功能」:

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

有什麼不對呢?

回答

1

您可以使用COALESCE此:

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

如果該字段爲空,則0在另外被使用。