尝试找出此更新
的正确语法:
UPDATE `foo`
SET (`x`, `y`, `z`) = (SELECT `x`, `y`, `z`
FROM `bar`
WHERE `id` = 'baz');
在实际查询中,有165列,所以我非常不想对每一列都执行x = x
.
这些列不是完美匹配,因此 SELECT *
不是一个选项。
最佳答案
在 MySQL 中,您可以将多个表添加到 UPDATE
中,如下所示:
UPDATE `foo`, `bar`
SET `foo`.`x` = `bar`.`x`,
`foo`.`y` = `bar`.`y`,
`foo`.`z` = `bar`.`z`
WHERE `id` = 'baz';
关于sql - mySQL:使用另一个表中的 SELECT 更新记录中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2289808/