已解决此问题
这样做:
UPDATE myTable
SET
URL =
( CASE
WHEN (URL <> 'new domain' THEN 'new domain'
ELSE URL
END
)
WHERE
NAME = 'any name'
早上好,
我有一个UPDATE查询,但有一点问题。 查询应更新现有的URL列。 但是...... WHERE子句有两个相互建立的限制。
首先,主要限制是NAME列。此列是唯一的。 现在我想检查数据库中的URL是否等于新URL。 只有在存在差异时我才想要替换它。
UPDATE myTable
SET
URL = 'new domain'
WHERE
NAME = 'any name' AND
URL <> 'new domain'
此UPDATE查询将查找名称,但也会查找与此模式不匹配的每个域。 不是我想要的。
答案 0 :(得分:0)
如果只想在真正发生更改时进行更新,则SET子句中URL的值应与WHERE子句中的值相同。在你的例子中,他们是不同的。