我正在尝试编写一个更新product_quantity的sql语句,当且仅当当前值小于要更新的值时...您是否会举例说明如何向语句添加条件。
UPDATE Product
SET product_quantity='5'
WHERE id='2'
答案 0 :(得分:1)
嗯,你可以这样做:
UPDATE Product
SET product_quantity = 5
WHERE id = 2 AND product_quantity < 5
或者像@dognose所说的那样,你可以使用GREATEST()
函数。
UPDATE Product
SET product_quantity = GREATEST(5, product_quantity)
WHERE id = 2
或者您可以使用像这样的简单条件
UPDATE Product
SET product_quantity = (
CASE WHEN product_quantity < 5 THEN 5
ELSE product_quantity END
)
WHERE id = 2
答案 1 :(得分:1)
只需将其添加到where条件即可。在{c}的两种情况下,5
都应该被动态值替换。
UPDATE Product
SET product_quantity='5'
WHERE id='2' AND product_quantity < 5
您也可以使用
UPDATE Product
SET product_quantity= GREATEST('5', product_quantity)
WHERE id='2'
但我认为FIRST选项是更好的选择:
如果您要跟踪最新的更改时间或某事,这可能会产生影响。那样的。