【发布时间】:2012-06-13 08:57:35
【问题描述】:
我有这个问题
UPDATE table SET this = this-20 WHERE this >= 0
我不希望 this 字段低于 0。我是否可以在此查询中添加一些内容以确保这一点,而无需运行另一个查询?
例如,如果这是 18,那么它将被设置为 -2
(使用 MYSQL)
【问题讨论】:
我有这个问题
UPDATE table SET this = this-20 WHERE this >= 0
我不希望 this 字段低于 0。我是否可以在此查询中添加一些内容以确保这一点,而无需运行另一个查询?
例如,如果这是 18,那么它将被设置为 -2
(使用 MYSQL)
【问题讨论】:
你可以利用Greatest功能:
UPDATE table SET this = greatest(0,this-20) WHERE this >= 0
考虑到this - 20和0,基本上将this的值设置为更大的值。
【讨论】:
将您的条件更改为WHERE (this - 20) >= 0。
并创建一个检查约束:ALTER TABLE [table] ADD CONSTRAINT ThisGreaterThanZero CHECK (this >= 0)。
【讨论】: