1

このクエリがあります

UPDATE table SET this = this-20 WHERE this >= 0

フィールドが0未満になることは望ましくthisありません。別のクエリを実行することなく、これを確実にするためにこのクエリに追加できる追加機能はありますか?

たとえば、これが 18 の場合、-2 に設定されます。

(MySQL を使用)

4

2 に答える 2

2

Greatest関数を利用できます。

UPDATE table SET this = greatest(0,this-20) WHERE this >= 0

これは基本的に、 this - 200を考慮して、より大きな値で this の値を設定します。

于 2012-06-09T19:18:20.400 に答える
0

条件を に変更しますWHERE (this - 20) >= 0。そして、チェック制約を作成します: ALTER TABLE [table] ADD CONSTRAINT ThisGreaterThanZero CHECK (this >= 0).

于 2012-06-09T18:26:00.933 に答える