我试图用表中其他一些列的总和填充一列。当我尝试时:
UPDATE table SET sum_field = other_field1;
没有问题,但是当我尝试时:
UPDATE table SET sum_field = SUM(other_field1 + other_field2 + other_field3);
我收到语法错误。
那是为什么?
答案 0 :(得分:1)
您无需在这里使用SUM
,只需使用加法运算符求和:
UPDATE table
SET sum_field = other_field1 + other_field2 + other_field3;
当前更新失败的原因是SUM
是SQL中的聚合函数。您是在告诉MySQL将每个记录中的sum_field
更新为整个表中三列的总和。
顺便说一句,将生成的列添加到现有表可能更有意义:
ALTER TABLE table
ADD COLUMN sum_field INT GENERATED ALWAYS AS (other_field1 + other_field2 + other_field3)