私はmysqlでこれを行おうとしています:
UPDATEテーブルSET値=値-1WHEREblah blah
値が0で、これが実行される場合、値は4294967295に設定されます。これは、符号なし整数であるため、最大値にループバックしているためです。
代わりにゼロのままにするにはどうすればよいですか?これを純粋にSQLで実行できますか?
`AND value > 0`
SET value = IF(value=0,0,value-1)
where 句を使用して、値 > 0 を指定します
日曜日の夜の SQL もいつも私を悩ませます。:-)
SQL文字列に追加するだけですAND value > 0
2 番目のクエリまたは if ステートメントを実行して、最大値に設定されているかどうかを確認し、0 に戻すことができます。しかし、これはある種の愚かなことです...
エントリをチェックするクイック関数を作成します。エントリがすでに 0 の場合は更新クエリを実行しません。
(if value >= 0, do not perform xy)