アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になっています。
以下のような表があったとして、ORDERが6以上の場合そのORDERを+1するSQLは、一つの文で書けるでしょうか?
元の表
ID | ORDER
1 | 5
2 | 7
3 | 6
4 | 9
5 | 2

変更後の表
ID | ORDER
1 | 5
2 | 8
3 | 7
4 | 10
5 | 2

SQLは、MySQLです。
よろしくお願いします。

A 回答 (2件)

>DBの中身を+1したいのです。



それなら基本構文のままですね

UPDATE hoge SET `ORDER`=`ORDER`+1 WHERE `ORDER`>=6
    • good
    • 1
この回答へのお礼

うまくいきました!

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

お礼日時:2009/02/02 12:28

「ORDER」という言葉じたいが予約語なのであまりおすすめできないです



今回の件は、MySQLではTRUEは1であることを考えれば以下のようにかけます。

SELECT `ID`,`ORDER`+(`ORDER`>=6) AS `ORDER` FROM `hoge`
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
質問が分かり難くて申し訳なかったのですが、ORDERを+1した表を取得するのではなく、DBの中身を+1したいのです。
UPDATEとSETを使うのかなとは思うのですが、条件の書き方などが分からなくて。。。
引き続きよろしくお願いいたします。

お礼日時:2009/02/02 12:16

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