みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

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   |
+----------+---------+

投稿日時 - 2008-06-29 04:32:40

QNo.4137227

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

・ mysqlの場合、テンポラリテーブルを作るのが最善かも知れません。

参考URL

http://d.hatena.ne.jp/paulownia/20080219/1203435273

投稿日時 - 2008-06-29 20:18:01

お礼

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

投稿日時 - 2008-06-30 19:34:35

あなたにオススメの質問