【sql】MySQL删除某字段重复的数据,保留一条数据

1 DELETE FROM 表名 WHERE (字段1)
2 IN 
3 (SELECT 字段1 FROM (SELECT 字段1 FROM 表名 GROUP BY 字段1 HAVING COUNT(*)>1) s1) 
4 AND
5 id NOT IN (SELECT id FROM (SELECT id FROM account GROUP BY 字段1 HAVING COUNT(*)>1) s2);

 Oracle写法


DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1)
AND ROWID NOT IN (SELECT MIN(ROWID) FROM 表 GROUP BY id HAVING COUNT(*) > 1);

posted @ 2020-09-11 16:29  a3576419  阅读(456)  评论(0编辑  收藏  举报