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 に答える