0
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

任何帮助,将不胜感激。谢谢

4

2 回答 2

1
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
于 2013-04-16T06:42:32.427 回答
1

您为什么不尝试根据您的表创建一个虚拟表,然后使用该视图上的语句更新该user表。SELECT像这样的东西:

CREATE VIEW view_user AS
SELECT *
FROM user;

然后在更新中使用 view_user。

于 2013-04-16T06:44:53.000 回答