我已经进行了更新查询,通过比较 ID(主键)将其中一个重复条目标记为 FAILURE(存在重复条目),但有两个以上的重复条目即将到来,而且所有条目都更新为 FAILURE只是。请帮帮我。这是我的更新查询:
UPDATE P20_Extract_Invoice n1,
P20_Extract_Invoice n2
SET n1.Closure_Status = 'FAILURE',
n1.Failure_Reason = 'DUPLICATE_ENTRY'
WHERE n1.WorkItemID = n2.WorkItemID
AND n1.ID != n2.ID
AND n1.Closure_Status = 'PICKED_FOR_PROCESSING'
AND n2.Closure_Status = 'PICKED_FOR_PROCESSING';
最佳答案
如果 ID
7 和 8 的行重复,则更新语句完成的交叉联接将比较 ID=7
与 ID=8
code>,还有 ID=8
与 ID=7
,因此两者都会更新。
您需要决定保留两者中的哪一个。
例如要保留具有最小 ID
的值,请更改为 n1.ID > n2.ID
,即更新具有较高 ID
值的值。
关于MySQL程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49613206/