• 締切済み

同じテーブル内同士で更新したい

MySQLバージョン4.1.16を使用しています。 同じテーブル内で、user_idが「aaaa」のnumカラム値を 「bbbb」のnumカラム値でupdateしたいのですが、 次のようなsqlだとエラーが出てしまいます・・・ なんとかしてできる方法はないでしょうか? $sql = "UPDATE users SET num = (SELECT num FROM users WHERE user_id = 'bbbb') WHERE user_id = 'aaaa'"; Error Number: 1093 You can't specify target table 'users' for update in FROM clause テーブル「users」 +----------+---------+ |  user_id  |  num  | +----------+---------+ |  aaaa   |   1   |←成功すれば2になる +----------+---------+ |  bbbb   |   2   | +----------+---------+

みんなの回答

  • auty
  • ベストアンサー率58% (284/486)
回答No.1

・ mysqlの場合、テンポラリテーブルを作るのが最善かも知れません。 参考URL http://d.hatena.ne.jp/paulownia/20080219/1203435273

takagoo100
質問者

お礼

ご返答ありがとうございます。 そこの方ももっと楽な方法と書いてますが、 なにか別の方法はあるのでしょうか? 最善じゃないかもしれませんが、一応あるならどういうものか知りたいです。

関連するQ&A