gpt4 book ai didi

SQL:仅在满足条件的情况下更新字段

转载 作者:行者123 更新时间:2023-12-03 15:50:57 26 4
gpt4 key购买 nike

我只想在满足条件的情况下更新列。因此,对于“类型”列,仅在其当前值不是“MongoDB”的情况下,才想将其值更改为“MongoDB”。这就是我正在使用的方法:

UPDATE Report
SET Type =
CASE
WHEN Type <> 'MongoDB' THEN 'MongoDB'
ELSE Type
END
WHERE Id = x

问题是:
即使类型为“MongoDB”,我仍然看到

(1 row(s) affected)



在我的SQL结果中。此练习的全部目的是在不需要时减少数据库操作。如果不满足条件,为什么仍要修改记录?

谢谢。

最佳答案

为什么不这样简化呢?

UPDATE Report
SET Type = 'MongoDB'
WHERE Id = x AND Type <> 'MongoDB'

但是要回答您的问题,即使将记录值设置为现有值,您仍在设置它。该记录还会返回到where子句中,因此无论您使用CASE语句如何,都将始终影响1行。

关于SQL:仅在满足条件的情况下更新字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38729433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com