博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何删除MYSQL表中的重复数据
阅读量:6150 次
发布时间:2019-06-21

本文共 1446 字,大约阅读时间需要 4 分钟。

hot3.png

在Mysql中,要想删除一个表中重复的数据,并且只保留一条,该如何做?

例如,库中存在表t_invest_return_record_sum (t),

有字段id,partner_id,invest_return_time,product_id ,有如下几条记录

(1,‘b’,'c','d'),(2,‘b’,'c','d'),(5,‘b1’,'c1','d1')

现要根据b,c,d三个字段重复的删除,留下id最小的一条(最多只有两条重复)

DELETE ta FROM t as ta INNER JOIN (SELECT max(tt.id) id FROM t as tt

GROUP BY tt.b,tt.c,tt.d HAVING COUNT(1)>=2) tb
ON ta.id = tb.id;

不能直接删除,如

DELETE FROM t where id in (SELECT id FROM t as tt

GROUP BY tt.b,tt.c,tt.d HAVING COUNT(1)>=2);

如果重复数超过2个或者不确定重复数,则需要在子查询中处理一下

(1,‘b’,'c','d'),(2,‘b’,'c','d'),(3,‘b’,'c','d'),(4,‘b’,'c','d'),(5,‘b1’,'c1','d1')

保留id最小的那条

DELETE tt FROM t_invest_return_record_sum tt INNER JOIN

(SELECT a.id FROM t_invest_return_record_sum a INNER JOIN
(SELECT t.partner_id,t.invest_return_time,t.product_id FROM t_invest_return_record_sum t 
GROUP BY t.partner_id,t.invest_return_time,t.product_id HAVING COUNT(1)>=2)t1
ON a.partner_id = t1.partner_id
AND a.invest_return_time = t1.invest_return_time
AND a.product_id = t1.product_id) t2
ON tt.id = t2.id
LEFT JOIN 
(SELECT min(a.id) id FROM t_invest_return_record_sum a INNER JOIN
(SELECT t.partner_id,t.invest_return_time,t.product_id FROM t_invest_return_record_sum t 
GROUP BY t.partner_id,t.invest_return_time,t.product_id HAVING COUNT(1)>=2)t1
ON a.partner_id = t1.partner_id
AND a.invest_return_time = t1.invest_return_time
AND a.product_id = t1.product_id) t3
ON tt.id = t3.id
WHERE t3.id IS NULL

转载于:https://my.oschina.net/u/1018004/blog/790489

你可能感兴趣的文章
Runtime类
查看>>
eclipse decompiler
查看>>
记一个搜索网盘资源的网站
查看>>
jdk1.7和jdk1.8的String的getByte方法的差异
查看>>
java父子进程通信
查看>>
Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
查看>>
Olap学习笔记
查看>>
Codeforces Round #431 (Div. 1)
查看>>
如何进行数组去重
查看>>
将标题空格替换为 '_' , 并自动复制到剪切板上
查看>>
List Collections sort
查看>>
Mysql -- You can't specify target table 'address' for update in FROM clause
查看>>
使用局部标准差实现图像的局部对比度增强算法。
查看>>
2017-2018-1 20165313 《信息安全系统设计基础》第八周学习总结
查看>>
《代码敲不队》第四次作业:项目需求调研与分析
查看>>
菜鸡互啄队—— 团队合作
查看>>
HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法...
查看>>
SparseArray
查看>>
第二章
查看>>
android背景选择器selector用法汇总
查看>>