`

SQL删除数据库中的重复记录

 
阅读更多

在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢?

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select  peopleId  from  people  group  by  peopleId  having  count(peopleId) > 1)

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people 
where peopleId  in (select  peopleId  from people  group  by  peopleId   having  count(peopleId) > 1)
and rowid not in (select min(rowid) from  people  group by peopleId  having count(peopleId )>1)

3、查找表中多余的重复记录(多个字段) 
select * from vitae a
where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq  having count(*) > 1)

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from vitae a
where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

 

mysql中不能这么用。 (等待mysql升级吧)
错误提示就是说,不能先select出同一表中的某些值,再update这个表(在同一语句中) 

替换方案: 
create table tmp as select min(id) as col1 from blur_article group by title;
delete from blur_article where id not in (select col1 from tmp); 
drop table tmp;
3
0
分享到:
评论

相关推荐

    怎样删除数据库中重复记录

    提供删除数据库中重复记录的经典方法,很不错的资料

    清除SQL数据库里的重复记录

    教你如何在SQL数据库后台通过SQL语句删除重复SQL记录。

    sql删除表中重复记录方法

    sql删除表中重复记录方法,很实用啊,我用过此方法。

    删除数据库中的重复记录

    查找并铲除数据库中的重复记录,,适用sql.acc等数据库

    SQL语句删除数据表中重复的记录

    该文档是本人在实验过程中遇到的一个需求,之后解决了,特此写一个文档,实现一条SQL语句删除数据库某一个表中重复的记录。(重复的记录只保留一条,其他的被删除)

    删除数据库重复SQL

    可以删除数据库里面表有重复的记录,简洁写法可以复用。谢谢!

    数据库重复记录清除程序VB源码版.rar

    数据库重复记录清除程序VB源码版,删除Access数据库中重复的记录,重复记录在数据库中是无用的,而且还会增大数据库的体积,但是找出这些重复记录如果用人工的话,太麻烦,所以写了这个自动找出重复记录并删除这些...

    数据库编程期末答疑,卷子讲解,SQL server相关操作讲解,如有侵权请联系删除

    如下是一个简化的员工考勤应用E-R图,请在SQL Server中创建名为YQKG的数据库,包括两个数据文件,一个日志文件,文件名按SQL Server对象命名规范定义,数据文件按10%的比例增长,数据库定义完成后输入如下样本数据。...

    查询重复数据sql语句

    是一个简单的sql语句,你可以仿照这个语句查出表里的重复数据。

    达梦数据库_SQL语言手册

    达梦数据库_SQL语言手册.pdf 数据库快照定义语句 数据库快照删除语句 第章数据查询语句和全文检索语句 单表查询 简单查询 带条件查询 集函数 情况表达式 连接查询 子查询 标量子查询 表子查询 派生表子...

    Sql Server里删除数据表中重复记录的例子

    主要介绍了Sql Server里删除数据表中重复记录的例子,本文给出了3种操作方法,需要的朋友可以参考下

    工作中非常有用的工具sql语句

    几个工作中非常有用的工具sql语句 ...3、删除数据库的重复记录(所有字段数据都相同的才算重复,也可以自己定义重复标准 4、两张表结构基本相同,将B表中的相同ID的数据的某些属性更新到A表的相应属性中(oracle 版本)

    删除mysql数据库中的重复数据记录

    采用的是下面的方法可删除,假设重复的是test数据库中的title字段 代码如下:create table bak as (select * from test group by title having count(*)=1); insert into bak (select * from test...

    SQL Server数据库删除数据集中重复数据实例讲解

    本文通过一个例子介绍了SQL Server数据库中删除数据集中的重复数据的操作过程,需要的朋友可以参考下

    SQL Server2008中删除重复记录的方法分享

    在Database中可能由于某种原因如用户输入,导入数据失败等 导致了重复记录. 如果你没有用主键,约束,或来其它机制实现数据完整性,那最后总是重复记录在你的数据库中.

    Excel VBA与数据库整合应用范例精讲

    实例7-5 从SQL Server数据库服务器中删除数据库(ADO) 实例7-6 从SQL Server数据库中删除数据表(ADO) 实例7-7 将SQL Server数据库中的数据导入到Excel工作表(ADO) 实例7-8 将SQL Server数据库中的数据导入...

    Excel VBA与数据库整合应用范例精讲书及源代码

    实例7-5 从SQL Server数据库服务器中删除数据库(ADO) 实例7-6 从SQL Server数据库中删除数据表(ADO) 实例7-7 将SQL Server数据库中的数据导入到Excel工作表(ADO) 实例7-8 将SQL Server数据库中的数据导入...

    SQL语句实现删除ACCESS重复记录的两种方法

    以下就重复记录删除的问题作一阐述。 有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。 1、对于第...

    MySQL数据库中删除重复记录的方法总结[推荐]

    表结构: mysql> desc demo; +——-+——————+——+—–+———+—————-+ | Field | Type | Null | Key | Default | Extra | +——-+——————+——+—–+———+—————-+ | id | int(11) unsigned |...

    数据库操作语句大全(sql)

    19、说明:删除重复记录 1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 2),select distinct * into temp from tablename delete from tablename insert into...

Global site tag (gtag.js) - Google Analytics