mySQL:如何根据四个字段识别重复项

标签 mysql

我已经阅读了一些关于如何通过将表与其自身的另一个实例进行比较来删除重复项的帖子,但是我不想删除我想比较它们的重复项。

例如。我有字段“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/

相关文章:

mysql - 无法从本地 Windows 连接到 RHEL 上的远程 MySQL 服务器

c# - 使用MYSQL数据库部署C#程序

php INSERT INTO 数据库变量名

php - 如何将从下拉框中选择的值与数组元素进行比较?

php - 如何从三个不同的表php中查询总计的SELECT SUM

mysql - mysql中的条件Order by子句

php - 使用 codeigniter 通过 OR 进行内连接

php - 从mysql数据库读取特殊字符

php - 分解多个用户ID

php - 向自定义 WordPress 数据库表中的文本字段添加新行,而不覆盖现有值