UPDATE base_resources
SET value = value + ?
WHERE resource_id = ?
AND base_id = ?
我有这个查询。有可能以某种方式为该值添加最大值吗?即“值”的新值不能高于x,如果是,则将其设置为x。
例如:
如果输入的值是(1500)并且允许的最大值(我想在我的查询中添加的条件)是1000,则该值将为1000。
我该怎么做?
答案 0 :(得分:4)
这样的事情:
UPDATE base_resources
SET value = least(value + ?, 1500)
WHERE resource_id = ?
AND base_id = ?
答案 1 :(得分:0)
可能是case
语法?
UPDATE base_resources
SET value = case
when value + ? > X then X
else value + ?
end
WHERE resource_id = ?
AND base_id = ?
答案 2 :(得分:0)
这是否具有商业意义? value
是商店中商品的供应吗?如果商店无法存储超过1500个项目,则将值限制为1500可能会导致资源丢失。想象一下仓库运送500件物品到商店。假设商店已经有1200件商品。从概念上讲,您有此交易:
我不是说早先的答案都是错的,但我不知道你的情况是否有意义。我宁愿在value
上设置一个不超过1500的约束,并根据仓库的库存和商店的容量来计算要发送的商品数量。