0

これは私の mysql クエリですが、機能していません

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

このクエリの実行方法を教えてください。または他の可能性?

4

1 に答える 1

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
于 2012-07-31T05:16:14.890 に答える