1

私はmysqlでこれを行おうとしています:

UPDATEテーブルSET値=値-1WHEREblah blah

値が0で、これが実行される場合、値は4294967295に設定されます。これは、符号なし整数であるため、最大値にループバックしているためです。

代わりにゼロのままにするにはどうすればよいですか?これを純粋にSQLで実行できますか?

4

5 に答える 5

12
`AND value > 0`
于 2009-11-29T18:42:25.710 に答える
3
SET value = IF(value=0,0,value-1)
于 2009-11-29T18:44:31.273 に答える
2

where 句を使用して、値 > 0 を指定します

日曜日の夜の SQL もいつも私を悩ませます。:-)

于 2009-11-29T18:44:46.160 に答える
1

SQL文字列に追加するだけですAND value > 0

于 2009-11-29T18:47:02.287 に答える
0

2 番目のクエリまたは if ステートメントを実行して、最大値に設定されているかどうかを確認し、0 に戻すことができます。しかし、これはある種の愚かなことです...

エントリをチェックするクイック関数を作成します。エントリがすでに 0 の場合は更新クエリを実行しません。

(if value >= 0, do not perform xy)

于 2009-11-29T18:43:56.117 に答える