用select选择mysql更新查询

时间:2012-07-31 05:03:35

标签: mysql

这是我的mysql查询,但它无法正常工作

update  jos_users set name =
(SELECT name 
FROM jos_users
WHERE id = 478) where id =477

任何人都可以告诉我们如何执行此查询?或其他可能性?

1 个答案:

答案 0 :(得分:1)

你应该得到的错误信息是:

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

这意味着您无法使用您在子选择中更新的同一个表。无论如何,有一个小小的解决方法来避免这种情况:只需使用嵌套的子选择:

update
  jos_users
set
  name = (select name from
            (SELECT name FROM jos_users WHERE id = 478)
               AS subselect_value)
where
  id = 477