1

我有这个查询

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

我不希望this字段低于 0。我可以在此查询中添加一些附加内容以确保这一点,而无需运行另一个查询?

例如,如果这是 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 回答