【发布时间】:2014-04-10 00:00:56
【问题描述】:
我正在尝试编写一个将更新product_quantity 的sql 语句,当且仅当当前值小于要更新的值时...您能否举例说明如何向语句添加条件。
UPDATE Product
SET product_quantity='5'
WHERE id='2'
【问题讨论】:
标签: mysql sql if-statement conditional-statements
我正在尝试编写一个将更新product_quantity 的sql 语句,当且仅当当前值小于要更新的值时...您能否举例说明如何向语句添加条件。
UPDATE Product
SET product_quantity='5'
WHERE id='2'
【问题讨论】:
标签: mysql sql if-statement conditional-statements
只需将其添加到 where 条件即可。 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'
但我认为第一个选项是更好的选择:
如果您正在跟踪最新的更改时间或某事,这可能会产生影响。像这样。
【讨论】:
MAX。您需要改用GREATEST()。
好吧,你可以这样做:
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
【讨论】: