如果这是一个基本问题,我很抱歉。
我有一个表结果如下:

我有这样1000张身份证的记录。
我想用属于同一id和date的“数学”和“物理”标记更新所有输入“all”的记录。
预期结果:

我正在考虑使用UPDATE子句,但不确定如何逻辑地构造它。
任何帮助都是非常感谢的。谢谢。
发布于 2022-04-18 11:20:10
Mysql多表更新手册页- https://dev.mysql.com/doc/refman/8.0/en/update.html
例如
drop table if exists t;
CREATE TABLE T(ID INT,SUBJECT VARCHAR(10), MARK INT);
INSERT INTO T VALUES
(1,'ALL',NULL),(1,'AAA',1),(1,'BBB',2),
(2,'ALL',NULL),(2,'AAA',10),(2,'BBB',20);
UPDATE T
JOIN
(SELECT ID,SUM(MARK) MARK FROM T WHERE SUBJECT <> 'ALL' GROUP BY ID) S ON S.ID = T.ID
SET T.MARK = S.MARK
WHERE SUBJECT = 'ALL';发布于 2022-04-18 10:38:04
请看这个网址:带汇总的mySql。它使用了rollup修饰符,您可以使用该修饰符将和按特定行分组。看看给出的例子,你可以再问一遍。
https://stackoverflow.com/questions/71910545
复制相似问题