【MySQL】以下のようなテーブルがあった場合、


id|name|
1|a |
2|NULL|

以下のようにid=1に新しい内容(hoge)を入れて、元々のid=1の内容を全部id=2に移し変えたいとします。

id|name|
1|hoge|
2|a |

これを
SELECT * FROM [TABLE_NAME] WHERE id = 1 UPDATE [TABLE_NAME] SET id = 2

のような"イメージ"で「1文」で実現はできないでしょうか?
お願いします。

回答の条件
  • 1人2回まで
  • 登録:2006/06/05 00:37:46
  • 終了:2006/06/09 15:14:48

ベストアンサー

id:Allashe No.1

Allashe回答回数59ベストアンサー獲得回数52006/06/05 07:39:20

ポイント100pt

 サブクエリで出来そうですが、MySQLが無いので検証できません。だめだったらごめんなさい。 

Update [Table_name]

Set name =

( Select name from [Table_name] A

Where A.id = 1)

Where [Table_name].id=2

.

 行が2以上あって一度に入れ替えるなら

Update [Table_name]

Set name =

( Select name from [Table_name] A

Where [Table_Name].id = (A.id)- 1)

Where [Table_name].id>1

.

 新しい値の挿入も、Updateでやります。

Update [Table_name]

Set name = 'hoge'

Where id = 1

 

id:Nigitama

ありがとうございました。

何度やっても出来ないので、良く調べたら、

バージョンが4.0でした。

調べたところサポートしていない模様です。

しかし、非常にためになりました。

ありがとうございます!

2006/06/05 14:44:46

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません