如何解决如何删除mysql中所有重复的行
这是我的表df1 = df.groupby('position')['Category'].value_counts().unstack(fill_value=0)
中的特定ID
我要删除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 举报,一经查实,本站将立刻删除。