如果满足条件,我希望只更新一列。对于“类型”列,仅当其当前值不是“MongoDB”时,才将其值更改为“MongoDB”。这是我正在使用的代码:
UPDATE Report
SET Type =
CASE
WHEN Type <> 'MongoDB' THEN 'MongoDB'
ELSE Type
END
WHERE Id = x
问题是: 即使类型为“MongoDB”,我仍然在我的SQL结果中看到
(受影响的1行) 当条件未满足时,这个练习的整个重点就是减少数据库操作。为什么它仍然会修改记录?
谢谢。
Type <> 'MondoDB'
添加到你的WHERE
子句中? - Anthony ForloneyCASE
语句不会改变哪些记录受到影响,只会改变它们受到的影响方式。相反,将哪些记录将受到影响的条件放在应该放置的WHERE
子句中。 - JNevill