sql - mySQL:使用另一个表中的 SELECT 更新记录中的多个值

标签 sql mysql

尝试找出此更新的正确语法:

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/

相关文章:

sql - 如何在 SQL SERVER PROCEDURE 中重用选择结果

sql - 将 double 转换为日期格式

php - 我可以在数据库中选择 1 行以上具有不同标识符的行吗?

php - 选择 3 个随机字符串,然后在 PHP 中用逗号分隔它们

mysql - SQL 语句出现错误

sql - 检查两列的约束

sql - 如何使用PostgreSQL显示数据库查询中的记录

mysql - 棘手的 MySQL JOIN 查询

php - 连接杀了我

mysql - 内连接在应该给出更多结果时给出了一个结果