SQL更新如果值= 1
问题描述:
我有一个SQL“ON DUPLICATE KEY UPDATE”。在更新的那一部分中,我有多个字段。其中一个领域是积极的。我想要做的只是更新活动字段,如果当前值是1.我知道如何更新如果ISNULL:active = ISNULL(@active, active)
。如果值为1,是否有办法做同样的事情?SQL更新如果值= 1
ON DUPLICATE KEY UPDATE
display_name=VALUES(display_name),
wholesale=VALUES(wholesale),
saleWS=VALUES(saleWS),
taxable=VALUES(taxable),
sku=VALUES(sku),
code=VALUES(code),
onSale=VALUES(onSale),
description=VALUES(description),
link=VALUES(link),
image=VALUES(image),
display_page=VALUES(display_page),
attachment=VALUES(attachment),
applyCoupon=VALUES(applyCoupon)
答
我知道如何更新,如果
ISNULL
:active = ISNULL(@active, active)
。如果值为1,是否有办法做同样的事情?
是的,你可以做到这一点使用CASE
表达:
active = CASE active WHEN 1 THEN @active ELSE active END
对于一般的情况下(比如,如果你想更新active
只有当其电流值小于123),你可以使用这句法:
active = CASE WHEN active < 123 THEN @active ELSE active END
答
或者你可以试试这个:
ISNULL(NULLIF(@active,1),active)
因此,当@active = 1时,它首先使其为空,然后检查为空。