mysql - 使用同一表中另一行的数据更新行

标签 mysql sql sql-update

UPDATE user SET 
                tw_oauth_token=(SELECT tw_oauth_token FROM user WHERE id=27),
                tw_oauth_token_secret = (SELECT tw_oauth_token_secret FROM user WHERE id=27),
                tw_user_id = (SELECT tw_user_id FROM user WHERE id=27),
                handler = (SELECT handler FROM user WHERE id=27),
                merged=1 WHERE id=26

这个想法是从 id = 27 的用户表中选择数据并更新 id = 26 的同一个表。

我遇到以下错误:

#1093 - You can't specify target table 'user' for update in FROM clause

如有任何帮助,我们将不胜感激。谢谢

最佳答案

UPDATE  user a
        CROSS JOIN user b
SET     a.tw_oauth_token = b.tw_oauth_token,
        a.tw_oauth_token_secret = b.tw_oauth_token_secret,
        a.tw_user_id = b.tw_user_id,
        a.handler = b.handler,
        a.mrged = 1
WHERE   a.ID = 26 AND
        b.ID = 27

关于mysql - 使用同一表中另一行的数据更新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16030341/

相关文章:

mysql - 可快速搜索同义词

sql 更新表集 - 无法绑定(bind)多部分标识符

sql - 如何使用表 B 中的信息更新表 A 中的列

mysql - 无法从 MySQL Workbench 连接到 RDS MySQL 数据库

mysql - "Cannot read property ' tablePath ' of undefined"( TYPE ORM )

php - 手动安装Apache/MySQL和PHP的优点

java - MYSQL 中特定列中的重复项显示为空

sql - 如何在 SQL 中进行渐进式递增每个 x 记录,其中每行的 x 可能不同?

php - MySql 查询返回多个结果,更新时所有内容都会更新,但我只需要更新其中一个

mysql - 时间复杂度/MySQL性能分析