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
 )
版权声明:本文为博主原创文章,未经博主允许不得转载。

SQL中删除某字段重复的数据

我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢?  重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样。 ...
  • zhenyu5211314
  • zhenyu5211314
  • 2013年11月13日 17:05
  • 5922

【mysql】sql删除多个字段重复数据有主键和没主键解决方法

table user      name age nub      张三    12  23      张三    12  23      张三    12  23      李四    13  21...
  • juan0728juan
  • juan0728juan
  • 2016年10月20日 09:31
  • 2040

mysql如何删除表中的重复行并保留id较小(或者较大)的记录

在实际录入数据库的过程中,如果数据量比较大的话,难免会因为一些原因,而录入多条重复的记录,那么应该如何操作才能删除重复行,并且保留一条id较大,或者较小的记录呢。         在本例中所用数据表结...
  • qq_28602957
  • qq_28602957
  • 2016年09月07日 09:28
  • 3114

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

1、查询重复记录SELECT * FROM 表名 WHERE 重复字段 IN (SELECT 重复字段 FROM 表名 GROUP BY 重复字段 HAVING COUNT(重复字段)...
  • gouyuanyang
  • gouyuanyang
  • 2016年12月22日 16:13
  • 364

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

 查询同一表内多字段同时重复记录的SQL语句 比如现在有一人员表  (表名:peosons) 若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来 select   p1.*   from   ...
  • Smart_Books
  • Smart_Books
  • 2011年05月31日 16:11
  • 712

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

几个删除重复记录的SQL语句 1.用rowid方法 2.用group by方法 3.用distinct方法 1。用rowid方法 根据oracle带的rowid属性,进行判断,是否存在重复,语...
  • yangpeng201203
  • yangpeng201203
  • 2013年10月28日 13:26
  • 878

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

查询同一表内多字段同时重复记录的SQL语句     来自:7th string           比如现在有一人员表  (表名:peosons)     若想将姓名、身份证号、住址这三个字...
  • jodan179
  • jodan179
  • 2014年05月10日 15:26
  • 664

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

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

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

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

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

-查询表内多字段同时重复记录的SQL语句,比如现在有一人员表  (表名:peosons)若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来 select   p1.*   from   per...
  • hongtashan11
  • hongtashan11
  • 2011年05月21日 15:24
  • 567
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Sql删除表中多余的重复记录,保证重复字段唯一
举报原因:
原因补充:

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