我已经阅读了一些关于如何通过将表与其自身的另一个实例进行比较来删除重复项的帖子,但是我不想删除我想比较它们的重复项。
例如。我有字段“id”、“sold_price”、“bruksareal”、“kommunenr”、“Gårdsnr”、“Bruksnr”、“Festenr”、“Seksjonsnr”。所有字段均为整数。我想识别重复/相同的行(相同的 bruksareal、kommunenr、gårdsnr、bruksnr、festenr 和 seksjonsnr)。如果相同,那么我想给这些行一个唯一的引用号。
我相信这将使我更容易识别稍后要在其他字段上进行比较的行(例如“sold_price”、“sold_date”等)
如果您认为我的方法是错误的,我愿意接受建议......
最佳答案
跨所有字段对表执行连接,然后使用 exists
查询,例如:
Update Table1
Set reference = UUID()
Where exists (
Select tb1.id
from Table1 tb1 inner join Table1 tb2 on
tb1.Field1 = tb2.Field1 AND
tb1.Field2 = tb2.Field2 AND
etc
Where tb1.Id = Table1.Id
And tb1.Id != tb2.Id
)
实际上你只需一个连接就可以简化
Update Table1
Set reference = UUID()
From Table1 inner join Table1 tb2 on
Table1.Field1 = tb2.Field1 AND
Table1.Field2 = tb2.Field2 AND
etc
Where Table1.Id != tb2.Id
关于mySQL:如何根据四个字段识别重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14053642/