MySQL删除数据表中重复数据
今天遇到一个问题,数据表的数据有重复的,关键原因在于新增数据时,没有根据条件先判断数据是否存在,当数据存在时进行有关条件的更新,不存在时做新增数据。
对于表中已经存在的数据处理办法的方法:
1.先根据条件进行统计数据重复率。
2.查询那一些数据是重复的,将重复数据放在一张表中用于条件对比将源数据中的重复数据删除(mysql中使用一张表,sqlserver中可以使用临时表或者表变量存放数据)。
3.根据条件关联将重复数据删除。
可以先查询重复数据的总数:
select sum(count)
from(
select bidsectioncode,count(bidsectioncode) as count from businessdata.business_bidsection
group by bidsectioncode having count>1
order by create_time desc
) as d;
查出数据库中的重复记录的数据中的一条,这个不难,很简单的,sql语句如下:
select * from businessdata.business_bidsection
where bidsectioncode in (select bidsectioncode from businessdata.business_bidsection group by bidsectioncode having count(bidsectioncode) > 1)
and id in (select min(id) from businessdata.business_bidsection group by bidsectioncode having count(bidsectioncode)>1)
这些都是不重复的,换句话说都是要保留的,不被删掉的,而其余与这些结果中name相同的应该被删掉。
也就是说将上边那个sql语句id后边加一个not ,查出来的结果就是要删掉的。
select * from businessdata.business_bidsection
where bidsectioncode in (select bidsectioncode from businessdata.business_bidsection group by bidsectioncode having count(bidsectioncode) > 1)
and id not in (select min(id) from businessdata.business_bidsection group by bidsectioncode having count(bidsectioncode)>1)
我把这些需要删掉的存到另外一个表里,然后我新建一个business_bidsection_test表,结构复制business_bidsection的结构就好了。
复制一个创建语句到test表中。
然后将重复数据添加到test表中,插入语句是:
insert into business_bidsection_test
(select * from businessdata.business_bidsection
where bidsectioncode in (select bidsectioncode from businessdata.business_bidsection group by bidsectioncode having count(bidsectioncode) > 1)
and id not in (select min(id) from businessdata.business_bidsection group by bidsectioncode having count(bidsectioncode)>1));
那接下来做的就是删掉business_bidsection表里边与business_bidsection_test表的id相同的数据。
delete a.* from business_bidsection a, business_bidsection_test b where a.id = b.id ;
这样的结果就是完全不重复的,但是id是不连续的。
MySQL删除数据表中重复数据的更多相关文章
- 删除oracle 表中重复数据sql语句、保留rowid最小的一条记录
delete from tablename a where rowid > ( select min(rowid) from table_name b where b.id = a.id and ...
- MySQL 数据库删除表中重复数据
采集数据的时候,由于先期对页面结构的分析不完善,导致采漏了一部分数据.完善代码之后重新运行 Scrapy,又采集了一些重复的数据,搜了下删除重复数据的方法. N.B. 删除数据表的重复数据时,请先备份 ...
- Sql Server删除数据表中重复记录 三种方法
本文介绍了Sql Server数据库中删除数据表中重复记录的方法. [项目]数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除![分析]1 ...
- ROWID面试题-删除表中重复数据(重复数据保留一个)
/* ROWID是行ID,通过它一定可以定位到r任意一行的数据记录 ROWID DNAME DEPTNO LOC ------------------ ------------------------ ...
- 向mysql数据表中插入数据失败的原因
1.案例代码: $sql1="insert into content(category,subject,content,username,release_date) values('{$ca ...
- DataTable to Excel(使用NPOI、EPPlus将数据表中的数据读取到excel格式内存中)
/// <summary> /// DataTable to Excel(将数据表中的数据读取到excel格式内存中) /// </summary> /// <param ...
- 将数据表中的数据添加到ComboBox控件中
实现效果: 知识运用: ComboBox控件的DataSource 属性 //获取或设置ComboBox的数据源 public Object DataResouce{get;set;} //属性值:任 ...
- code first网站发布后数据表中没有数据问题
code first网站发布后数据表中没有数据问题 (1).将internal sealed class Configuration类访问修饰符改为public class Configuratio ...
- 查询和删除表中重复数据sql语句
1.查询表中重复数据.select * from peoplewhere peopleId in (select peopleId from people group by ...
随机推荐
- pacbio 原始下机数据h5 文件简介
pacbio 采用hdf5文件格式保存原始的下机数据,对于RS 测序系统而言,会产生一个 bas.h5 的文件; 以bas.h5 文件为例,看一下有下机数据中保存了那些信息 h5dump 工具可以用来 ...
- MVC下载(存在文件的情况)
前台: <h1>下载</h1> <button onclick="location = 'download'">下载</button> ...
- 不错的源码演示:admin5源码
admin5源码官网:http://down.admin5.com/ 集资讯,源码,字体,itchat于一体的网站,可以下载喔! 实际项目中可以用得到.
- hdu5087——Revenge of LIS II
Revenge of LIS II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- 如何在vs2008安装64位编译器
1.打开D:\Microsoft Visual Studio 9.0\Microsoft Visual Studio 2008 Professional Edition - CHS setup.exe ...
- Http Digest认证协议
转自:http://blog.csdn.net/htjoy1202/article/details/7067287 其认证的基本框架为挑战认证的结构,如下图所示: 1.客户端希望取到服务器上的某个资源 ...
- Javascript继承机制总结 [转]
转自:http://bbs.csdn.net/topics/260051906 Javascript继承 一直想对Javascript再次做一些总结,正好最近自己写了一个小型Js UI库,总结了一下J ...
- css图片宽高相等设置
<div class="image-header"> <img src="demo.jpg"> </div> .image- ...
- swif开发之--协议的使用
以前在oc构建的项目中,如果这个页面需要构建一些指定的页面,一般我会重新创建个集成与UIView的类,然后同时创建XXX.xib文件,然后直接在上面拖拽控件,非常快速,当然也可以手动布局!个人更喜欢可 ...
- Python 爬虫知识点 - 淘宝商品检索结果抓包分析
一.抓包基础 在淘宝上搜索“Python机器学习”之后,试图抓取书名.作者.图片.价格.地址.出版社.书店等信息,查看源码发现html-body中没有这些信息,分析脚本发现,数据存储在了g_page_ ...