微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何删除mysql中所有重复的行

如何解决如何删除mysql中所有重复的行

这是我的表df1 = df.groupby('position')['Category'].value_counts().unstack(fill_value=0) 中的特定ID

enter image description here

我要删除role_id和user_id的所有重复行,并且如果有2条或更多记录,则仅应有1条最新记录,而其他应删除。我怎么写这个??

解决方法

您可以使用delete ... from ... join...语法:

delete r
from role_users r
inner join (
    select role_id,user_id,max(id) max_id
    from role_users
    group by role_id,user_id
) r1 
    on r.role_id = r1.role_id 
    and r.user_id = r1.user_id
    and r.id < r1.max_id
,

尝试以下方法:

以下查询将为您提供按role_id和user_id分组的所有唯一记录的ID

SELECT MAX(id) FROM role_users GROUP BY role_id,user_id

请注意此处的MAX函数假定id为auto_increment来获取最新创建的记录

在嵌套查询中使用它来删除所有其他重复记录

DELETE FROM role_users WHERE id NOT IN (SELECT MAX(id) FROM role_users GROUP BY role_id,user_id);

让我知道它是否有效:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。