- 締切済み
同じテーブル内同士で更新したい
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 | +----------+---------+
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- auty
- ベストアンサー率58% (284/486)
回答No.1
・ mysqlの場合、テンポラリテーブルを作るのが最善かも知れません。 参考URL http://d.hatena.ne.jp/paulownia/20080219/1203435273
お礼
ご返答ありがとうございます。 そこの方ももっと楽な方法と書いてますが、 なにか別の方法はあるのでしょうか? 最善じゃないかもしれませんが、一応あるならどういうものか知りたいです。