我有一个表功能,我得到所有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)))
那里有什么问题?
答案 0 :(得分:1)
您可以使用COALESCE
:
UPDATE
power
SET
cnt = COALESCE(is_yellow, 0) +
COALESCE(is_green, 0) +
COALESCE(is_blue, 0)
如果该字段为空,则在添加中使用0
。