利用主键删除重复数据

delete a from yjj_RoleAuthority a 
    join (select count(*),RoleId, AuthorityId, max(Id) as id from yjj_RoleAuthority group by RoleId,AuthorityId having count(*) > 1 ) b 
    on a.RoleId = b.RoleId and a.AuthorityId = b.AuthorityId
where a.Id < b.Id

解释:删除表yjj_RoleAuthority中重复数据。表b筛选出有重复数据的并且选取出最大的主键,表a和表b联合(依据自己的重复字段来结合),最后取出结合后a.id小于b.id的数据。

你可能感兴趣的:(mysql,mysql,删除重复数据)