4

クイック初心者MySQLの質問. 特定のフィールドの最小値が 0 であることを確認する最も簡単な方法は何ですか?

基本的に、自動的に実行され、15 分ごとにフィールドの値から整数値を減算するスクリプトがありますが、0 になったエントリは 0 のままにし、負にならないようにしたいと考えています。

これはPHPのループで簡単に実行できますが、データベースへの呼び出しを制限しようとしています...

フィールドの最小値を 0 にするか、そのフィールドに入力された負の値が自動的に 0 になるようにする簡単な方法はありますか?

ありがとう!

4

4 に答える 4

5

単純な条件「WHERE」を試しましたか、それとも問題はそれよりも複雑ですか?

UPDATE mytable SET mycolumn=mycolumn-1 WHERE mycolumn>0
于 2010-08-05T17:21:42.483 に答える
3

フィールドに UNSIGNED 属性を設定できます。このフィールドを 0 未満に設定しようとすると、mysql はエラーを生成します。

于 2010-08-05T17:15:50.770 に答える
2

値がすでにゼロの場合に値から減算しないように、スクリプトにロジックを追加できます...

負の値を修正し、それらをゼロに設定する更新トリガーは別のアイデアです。

于 2010-08-05T17:22:29.337 に答える
0

これを行う一般的な方法はCHECK制約ですが、MySQL はそれをサポートしていません。

したがって、列を符号なしにするか、アプリケーション ロジックで値が > 0 の場合にのみ値を減算していることを確認してください。

于 2010-08-05T17:27:55.973 に答える