UPDATE base_resources
SET value = value + ?
WHERE resource_id = ?
AND base_id = ?
我有这个查询。是否可以以某种方式为该值添加最大值?即“value”的新值不能大于x,如果是,则设置为x。
例如:
如果输入的值为 (1500) 并且允许的最大值(我想在查询中添加的条件是)1000,则该值将改为 1000。
我怎样才能做到这一点?
像这样的东西:
UPDATE base_resources
SET value = least(value + ?, 1500)
WHERE resource_id = ?
AND base_id = ?
也许case
语法?
UPDATE base_resources
SET value = case
when value + ? > X then X
else value + ?
end
WHERE resource_id = ?
AND base_id = ?
这是否具有商业意义?商品的供应是否value
在商店中?如果商店不能存储超过 1500 个项目,则将值限制为 1500 可能会导致资源损失。想象一个仓库向一家商店运送 500 件物品。假设商店已经有 1200 件商品。从概念上讲,您有以下交易:
我并不是说前面的任何一个答案都是错误的,但我不知道你的情况是否有意义。我希望限制value
它不超过 1500,并根据仓库的库存和商店的容量来计算要发送的物品数量。