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
任何帮助将不胜感激。感谢
答案 0 :(得分: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
答案 1 :(得分:1)
为什么不尝试根据您的表创建虚拟表,然后使用该视图上的user
语句更新SELECT
表。像这样:
CREATE VIEW view_user AS
SELECT *
FROM user;
然后在更新中使用view_user。