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

原创 2016年06月01日 23:07:39
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
 )

相关文章推荐

MySQL删除表中多余的重复记录,只保留一条记录

1、查询重复记录SELECT * FROM 表名 WHERE 重复字段 IN (SELECT 重复字段 FROM 表名 GROUP BY 重复字段 HAVING COUNT(重复字段)...

查询同一表内多字段同时重复记录的SQL语句

比如现在有一人员表  (表名:peosons)若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来select   p1.*   from   persons   p1,persons   p2...

查询表内多字段同时重复记录的SQL语句

-查询表内多字段同时重复记录的SQL语句,比如现在有一人员表  (表名:peosons)若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来 select   p1.*   from   per...

SQL按字段分组取最大(小)值记录(重复记录)

http://www.xuebuyuan.com/76924.html
  • cumt168
  • cumt168
  • 2014年11月15日 09:34
  • 700

SQL 处理表重复记录(查询和删除)

--处理表重复记录(查询和删除) /**********************************************************************************...

sql 处理表重复记录(查询和删除)

--处理表重复记录(查询和删除) /**********************************************************************************...

删除表中重复记录

  • 2013年02月23日 17:52
  • 322B
  • 下载

sql记录去重(SQL查询或者删除表中重复记录)

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Sql删除表中多余的重复记录,保证重复字段唯一
举报原因:
原因补充:

(最多只允许输入30个字)