プロが教えるわが家の防犯対策術!

名簿のテーブルが下記の構成です。
id 数値の型で主キー
名前 テキストの型

データが次の様になっている。
1 山田
2 太郎
3 花子

ここで、idを順にプラス1してそれぞれを
2 山田
3 太郎
4 花子

と言う様に名簿のテーブルのデータを更新したい。

これを単に
update 名簿 set id=id+1;

では、id=2と3に付いては主キーとなっている為にデータは更新されな
い。なので、一旦idを降順にしたテーブルを作ってから更新クエリを実
行すれば問題は無いと思う。

この様な動作をサブクエリを使って、一つのクエリにしたいのですが。
update文のsqlが分かりません。

宜しく回答願います。

A 回答 (1件)

mysqlの場合update文にorderbyが利用できます



update tbl set id=id+1 order by id desc;

ご希望の命題は上記でできるはずですが
テストとしては構いませんがそもそもidを付け替えるのはナンセンスです。
    • good
    • 0
この回答へのお礼

有難う御座います。

お礼日時:2017/04/11 20:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!