Sql删除表中多余的重复记录,保证重复字段唯一

来源:互联网 发布:如何制作app软件 编辑:程序博客网 时间:2024/05/01 01:00
DELETE FROM 表名 WHERE 重复字段 IN 
 (
     SELECT a.id FROM 
     (
         SELECT MAX(重复字段) id FROM 表名 a WHERE EXISTS
         (
             SELECT 1 FROM 表名 b WHERE a.重复字段=b.重复字段 GROUP BY 重复字段 HAVING COUNT(1)>1
         )
         GROUP BY 重复字段
     ) a
 )

例如:
DELETE FROM sxpinews WHERE newsnum IN 
 (
     SELECT a.id FROM 
     (
         SELECT MAX(newsnum) id FROM sxpinews a WHERE EXISTS
         (
             SELECT 1 FROM sxpinews b WHERE a.newsnum=b.newsnum GROUP BY newsnum HAVING COUNT(1)>1
         )
         GROUP BY newsnum
     ) a
 )
0 0
原创粉丝点击