ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MYSQL删除同一组中的重复记录,只保留一个

2019-07-28 19:15:22  阅读:260  来源: 互联网

标签:duplicate-removal sql mysql group-by sql-delete


参见英文答案 > How do I delete records in MySQL and keep the lastest date                                    3个
>            How do I delete all the duplicate records in a MySQL table without temp tables                                    8个
>            How do I remove duplicates rows in my MySQL database? (Keep the one with lowest Primary ID)                                    4个
我搜索但是所有问题都出现了删除重复记录并且只保留了一个最新的表,但我有点不同,我想删除同一组中的重复记录但只保留该组的最新记录.这是一个例子:

ID  Device_ID    Time                   Content Text
1   abc          2013-11-30 15-30-01    I love you
2   abc          2013-11-30 15-30-01    I love you
3   def          2013-10-30 12-12-02    I love you
4   def          2013-10-30 12-12-02    I love you
5   ghj          2013-09-30 11-12-02    I love you
6   ghj          2013-09-30 11-12-02    I love you

因此,有些设备与其他设备具有相同的内容,我想找到一种方法来删除每个设备ID中的重复内容并删除重复并保留最新.

如果我按内容文本选择分组,然后从那里删除它,那么它将从其他设备删除所有其他内容,我不能这样做.

假设我有5000万条记录.那么有没有办法可以删除每个设备ID上的重复记录,结果就像只有我喜欢你在每个设备ID上的内容文字.

在惰性期间,我无法将列内容文本设置为唯一,因为可能有一些设备ID使用相同的内容文本.或者也许是唯一的时间,但每个设备ID可能会插入相同的时间但不同的内容文本…

我想res

ID  Device_ID    TimeContent            Text

2   abc          2013-11-30 15-30-01    I love you

4   def          2013-10-30 12-12-02    I love you

6   ghj          2013-09-30 11-12-02    I love you

解决方法:

尝试:

DELETE FROM tblA 
WHERE id NOT IN (
          SELECT DISTINCT id FROM (
          SELECT  MAX(id) as id FROM tblA 
          GROUP BY Device_ID, Time, ContentText 
          HAVING COUNT(*) > 1 ) A          
    );

Demo

标签:duplicate-removal,sql,mysql,group-by,sql-delete
来源: https://codeday.me/bug/20190728/1564498.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有