人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【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文」で実現はできないでしょうか?
お願いします。

●質問者: にぎたま
●カテゴリ:コンピュータ インターネット
✍キーワード:hoge MySQL name SELECT SET
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Allashe
●100ポイント ベストアンサー

サブクエリで出来そうですが、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

◎質問者からの返答

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

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

バージョンが4.0でした。

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

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

ありがとうございます!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ