☰
mysql删除重复项
2026/9/29 2:24:26 网站建设 项目流程

目录

1.背景

2.解决方法

方案一:使用JOIN删除(高效方案)

方案二:使用子查询性能更优(兼容大多数MySQL版本)


1.背景

mysql5.7.41-log,
单表中数据量很多,约25.6万条,id是雪花算法生成,其中smiles字段内容存在重复现象,

要求smiles相同的行,只保留第一条,即id最小的那一条保留,删除其他smiles重复项。

2.解决方法

根据smiles分组,过滤出重复项,安装重复数倒序排列,

SELECT smiles, count(1) as cnt from patent_data WHERE del_flag='0' GROUP BY smiles HAVING cnt>1 ORDER BY cnt desc

方案一:使用JOIN删除(高效方案)

执行去重sql语句,(只保留重复项里面id最小的一项)

DELETE p1 FROM patent_data p1 INNER JOIN patent_data p2 ON p1.smiles = p2.smiles AND p1.id > p2.id;

方案二:使用子查询性能更优(兼容大多数MySQL版本)

执行子查询删除重复项sql语句,

DELETE FROM patent_data WHERE id NOT IN ( SELECT t.min_id FROM ( SELECT MIN(id) AS min_id FROM patent_data GROUP BY smiles ) t );

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询