在MySQL数据库表中,我想用查询结果对某些行进行UPDATE
。
例如,我有一张 table
TABLE employees(
employeeId int,
salary int,
)
我只想对以下查询中出现的行进行
UPDATE
编码,匹配employeeId
,并且newSalary
成为salary
的修改值(SELECT employeeId, newSalary FROM ....)
我本来以为将结果加载到临时表中,但是我不确定如何获取
SET
值,如下所示UPDATE employees
SET salary = (???)
WHERE employeeId exists in tempTable
您可能会评论说这会导致非规范化,我知道这一点。我怀疑会有一些“您不想这样做”类型的回答,为简洁起见,请假设我有充分的理由。
最佳答案
加入子查询和您要更新的表:
UPDATE employees x INNER JOIN (
SELECT employeeId, newSalary FROM ....
) y ON x.employeeId=y.employeeId
SET x.salary=y.newSalary
关于mysql - 使用子查询的SQL Update列值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7064871/