我想寫一個將更新product_quantity的sql語句,當且僅當當前值小於要更新的值...您是否會舉例說明如何向語句添加條件。有沒有辦法給sql語句分配條件?
UPDATE Product
SET product_quantity='5'
WHERE id='2'
我想寫一個將更新product_quantity的sql語句,當且僅當當前值小於要更新的值...您是否會舉例說明如何向語句添加條件。有沒有辦法給sql語句分配條件?
UPDATE Product
SET product_quantity='5'
WHERE id='2'
只需將它添加到那裏的條件。在這兩種情況下,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'
但我認爲第一個選項是更好的選擇:
這可能會有影響,如果你正在跟蹤最新的變化時間或某事。像那樣。
那麼,你可以做這樣的事情:
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
你不能像這樣使用MAX。您需要使用'GREATEST()'來代替。 – invisal
@invisal你是對的 - 只是發揮出來:) – dognose