- ベストアンサー
あるSQLの書き方についてわからずに困っております。
あるSQLの書き方についてわからずに困っております。 使っているデータベースはMySQL 4.0.20です。 現在4.0.20を使っておりますが、その時4.1を使っておりましたが 文字化けのバグ?なのか 4.0.20に戻しております。 皆さんはどのバージョンを使っているのでしょうか? OSはWindowsとLinuxです。 val double namae varchar(10) val | namae ----------+---------- 1 | あ 2 | い 2.5 | う 3 | え 4 | お のデータを以下のようにしたいのですが どのようにすれば良いのでしょうか? MySQL/PostgreSQLのどちらでも動作するものが良いです。 1クエリ?では無理でしょうか? val | namae ----------+---------- 1 | あ 2 | い 3 | う 4 | え 5 | お
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
MySQLは詳しくないですが。(^^;) 下記はどうでしょうか? UPDATE SET VAL=FLOOR(VAL+1) WHERE VAL>2
その他の回答 (1)
- haremscarem
- ベストアンサー率80% (4/5)
こんばんは。 私も4.1.xを利用しようとして文字が化けるので、4.0.23に戻した経緯がありました。 この場合ですが、複数レコードに対して別々の値に変更するので、1クエリで実行するのはちょっと無理だと思います。 プライマリキーを設定しているかどうか分かりませんが、とりあえずvalだとすると、 update <table> set val = '5' where namae = 'お'; update <table> set val = '4' where namae = 'え'; update <table> set val = '3' where namae = 'う'; 基本的なupdate文を3つ書く形ですね。 ありきたりの答えになってしまいましたが。