【发布时间】:2018-07-10 21:12:15
【问题描述】:
我编写了一个 SELECT 查询来了解有多少记录会受到我的 UPDATE 查询的影响。
SELECT 和 UPDATE 返回不同的记录数。
这是我的 SELECT 查询:
SELECT *
FROM T1
JOIN T2 on T1.ID = T2.ID
WHERE T1.Name IS NULL
AND T2.Status = 'happy'
这是我的更新查询:
UPDATE T1
SET T1.Name = T2.Name
FROM T1
JOIN T2 on T1.ID = T2.ID
WHERE T1.Name IS NULL
AND T2.Status = 'happy'
我的 SELECT 返回 19K 记录,而我的 UPDATE 影响 12K 记录。请注意,SELECT 和 UPDATE 的 WHERE 子句完全相同。
是什么导致 SELECT 和 UPDATE 查询之间的记录数不一致?
你能帮我理解这里发生了什么吗?
提前致谢!!
【问题讨论】:
-
UPDATE永远不会多次更新一行。SELECT然而,很乐意多次返回相同的(目标)行。
标签: sql sql-update