我有一个类似于下面的表格,
ID 姓名 电子邮件 性别
并且该表中已有值。
现在,我使用下面的查询来添加年龄。
更改表 tblPerson 添加年龄 int
现在,我的行结构看起来像
ID 姓名 电子邮件 性别 年龄
现在,我有年龄列表。是否有任何查询要将这些年龄添加到新创建的列中?
所有年龄按照ID排序。因此不需要 IF 逻辑。我只需要添加列数据。
谢谢。
最佳答案
将值与 id 一起存储在临时表中。然后使用 join
:
update t join
idages ia
on t.id = io.id
set t.age = ia.age;
您还可以使用巨大的 case
表达式来执行此操作,但这很容易出错:
update t
set t.age = (case when id = id1 then age1
when id = id2 then age2
when id = id3 then age3
. . .
end)
where t.age in (id1, id2, id3, . . .);
关于mysql - 如何使用单个查询更新表中多个列的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43881507/