• ベストアンサー

ある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 | お

質問者が選んだベストアンサー

  • ベストアンサー
  • t-satoh
  • ベストアンサー率35% (211/591)
回答No.2

 MySQLは詳しくないですが。(^^;) 下記はどうでしょうか? UPDATE SET VAL=FLOOR(VAL+1) WHERE VAL>2

その他の回答 (1)

回答No.1

こんばんは。 私も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つ書く形ですね。 ありきたりの答えになってしまいましたが。

関連するQ&A