-- 如表role_user的數據 ROLEID USERID 15 88010000000074 15 88010000000074 15 88010000000074 -- 刪除相同記錄只剩下一條記錄
根據兩個字段查詢重復數據 (roleid,userid)
select * from role_user a where (a.roleid,a.userid) in(select roleid,userid from role_user group by roleid,userid having count(*) > 1)
刪除重復數據只保留一條
delete from role_user where rowid not in (select min(rowid) from role_user group by roleid , userid )
下面的只根據userid進行查詢與刪除
select count(1),USERID from role_user group by USERID HAVING count(1)>1 DELETE from role_user WHERE (userid) IN ( SELECT userid FROM role_user GROUP BY userid HAVING COUNT(userid) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM role_user GROUP BY userid HAVING COUNT(*) > 1);