本文以mysql为例
相信所有的程序猿都有类似的经历:再检查某个bug后发现某张表数据有重复项,举例如distinct A、B、C三个维度的数据。
那么怎么简单又快速的去掉重复项只留下一行有效数据呢?
表全部删除重新制作数据不妨为一种,只不过比较耗时间而已,相信你撸王者的时间应该可以解决掉。
下面介绍一下作者第一次解决此类问题的办法(有更好的办法欢迎交流)。
首先GROUP BY 的作用:按维度分组后查询出一行数据。
比如上面提到的按A、B、C三个维度分组重复数据有10行,想去掉的数据有9行,在第一次group by having count(1)>9会出现1/10中的一行数据(按该表其他字段,如id删掉此行数据),第二次group by havingcount(1)>8页会出现1/9中的一行数据(按该表其他字段,如id删掉此行数据),以此类推直到删除剩下最后一行。。。。。。。。。。。

也可以单独写一个循环函数,执行循环变量从9到1。
本文介绍了如何使用MySQL数据库高效地删除表中的重复数据。通过GROUP BY和HAVING子句,配合循环删除策略,逐步保留每组唯一的一条记录。这种方法避免了全表删除的耗时操作,适合处理含有重复数据的表。文章还邀请读者分享更优的解决方案。
3003

被折叠的 条评论
为什么被折叠?



