「ある行のある項目に数値が入っていて、そこに特定の数値を足した時、もし上限に達していたら上限値とする」
という処理をPHPで書きたいのですが、どうするのがスマートでしょうか。
例えば、以下の場合、
元々の値:param = 3;
最大値:$max = 5;
足す値:$add = 0;
↓
もし1を足した時は param = 4
もし2を足した時は param = 5
もし3を足した時は param = 5
となるのが希望の動作です。
最初は以下のようなSQL文を作っていました。(行を特定するWHERE句は省略)
UPDATE テーブル名 SET param = param+$add WHERE (deck_number+$add) < $max;
ですがこの場合、当然ながら足してmaxを越える場合はupdateされませんので、
$add = 3 の場合に5ではなく3のままになります。
一旦SELECTしてからparamの値を確認&修正、その後UPDATEすればいいのですが、
SQL文1つで実行可能ならそちらの方にしたいなと思いました。
何か良い方法はあるのでしょうか? コツコツ地道に書いていく他ないのでしょうか?
とても初歩的な内容かもしれませんが、教えて頂ければ助かります。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/28 14:39
退会済みユーザー
2016/06/28 14:40
2016/06/28 14:41
退会済みユーザー
2016/06/28 14:43 編集
2016/06/28 14:44 編集
2016/06/28 14:49
退会済みユーザー
2016/06/28 14:51
2016/06/28 14:52
2016/06/28 14:55
退会済みユーザー
2016/06/28 14:57
2016/06/28 14:57