这里的重复数据指数据库中每一列的值都相同的数据,有时候也许是没有主键的原因导致数据可能重复,或者是,除了主键,其他数据重复,那么下面的方法可以都这些重复数据进行删除,保留下重复数据中的一行就可以。

大体可以分为两个方法 :一种要用rowid来进行删除,另外一种,则是用临时表来进行删除。这里讲四种方法:

现在假设 表test中有,三个列col1,col2,col3;在这样的表里有很多数据是重复的,现在的目标是对这些数据中重复的数据进行删除,保留下的数据都是不重复的。

第一种方法:

Delete from test where rowid not in(select  max(rowid) from test group by col1,col2,col3);

第二种方法:

Delete form test where (col1,col2,col3)      in(select col1,col2,col3 from test  group bycol1,col2,col3) and rowid not in(select max(rowid) from test group by col1,col2,col3)

(跟第一种差不了多少,很常见的思维方式)

这里的删除适合删除表中有大量重复数据;

第三种方法:

Delete from test a where a.rowid !=(select  max(rowid) from test bwhere a.col1=b.col1 and a.col2=b.col2  and  a.col3=b.col3)

变形:

Delete from test a where a.rowid

第三种方法适合表中有少量重复数据的表

第四种方法:(临时表法)

Create table test2 as select distinct * from test;--建立临时表,表中存放不重复的值Truncate table test;--清空原来的表Insert into test  select * from test2;--重新插入不重复的值

当然第四种是比较麻烦的,也适合删除重复数据比较少的数据。

关于rowid,就是指数据库表中每一行的标示吧,

系统在你插入数据的时候要给每一行的数据分配一个rowid来进行标识每一行,从数据插入的那一刻起,rowid 就是定下来的了。

删除数据库表中重复数据相关推荐

  1. 删除数据库表中重复数据的总结(oracle)

    这里的重复数据指数据库中每一列的值都相同的数据,有时候也许是没有主键的原因导致数据可能重复,或者是,除了主键,其他数据重复,那么下面的方法可以都这些重复数据进行删除,保留下重复数据中的一行就可以. 大 ...

  2. 如何删除数据库表中重复的数据

    如何用SQL语句删除表中重复数据. 表名为cases,表中有四个字段时,表中数据如下: 1.id不同,其他字段相同 过滤重复字段,删除表中其他字段一样的数据 delete from cases whe ...

  3. 删除数据库表中重复的记录

    删除数据库表中重复的记录 在处理数据的过程中,经常会遇到一个表中需要删除一些重复的记录.比如 在上表中,timeofday和cb_key_db_person两个字段,圈起来的记录是重复的,如果需要删除 ...

  4. MySQL - 删除数据库表中的数据

    删除数据库表中的数据 删除数据记录是数据操作中常见的操作,可以删除表中已经存在的数据记录.在MySQL中可以通过DELETE语句来删除数据记录,该SQL语句可以通过以下几种方式使用:删除特定数据记录. ...

  5. 怎么删除mysql表中数据_如何删除数据库表中的数据?

    删除数据库表中数据有两种方式: 第一种:delete from tablename where 1=1; 第二种:truncate  table tablename; 区别是:第二种清空表数据比较及时 ...

  6. SQL删除数据库表中重复的数据

    以一个字段为条件筛选重复数据并删除 delete from user.table t where t.pk_id in (select t.pk_id from user.table t group ...

  7. mysql删除表中的唯一索引吗_Mysql 使用sql删除同表中重复数据并加唯一索引

    同一张表中,假设以两个字段做唯一业务,这两个字段分别为key1,key2, 则以这两个字段为唯一 DELETE tablename FROM tablename , ( SELECT min(id) ...

  8. 帆软通过js删除数据库表中的数据

    contentPane.curLGP.getCellValue(1, 0); //获取文本框控件所在单元格的值 var yea=contentPane.curLGP.getCellValue(&quo ...

  9. SQL Server数据库表的基本操作(批量插入、删除、查询数据,删除表中重复数据方法)

    实验名称:数据库表的基本操作与表内数据操作 实验目的: 掌握数据库表创建方法(交互式.T-SQL法) 掌握修改数据库表结构的方法 掌握删除数据库表的方法 掌握交互式EXCEL文件录入数据至数据库表的方 ...

最新文章

  1. 【VMCloud云平台】私有云门户第一朵Web云(一)
  2. leetcode算法题--寻找两个有序数组的中位数★★
  3. Zookeeper分布式一致性原理(一):分布式架构
  4. 【数据挖掘笔记二】认识数据
  5. (JavaWeb)ServletContext对象
  6. Java实现结构体,让字节流封送简单起来
  7. bootstrap到底是用来做什么的(概念)
  8. 安卓学习第10课——listview
  9. 能力成熟度模型(CMM)
  10. 整合Mybatis+Spring | 释疑
  11. android qq消息推送消息,最新版手机QQ怎么发送定时消息
  12. Transaction使用及原理
  13. HD2直刷WP7系统教程及详细说明【ROM+直刷驱动+内存卡工
  14. linux开启80和443,nginx 80和443同时做负载均衡
  15. 小样本(小于30)假设检验与置信区间
  16. [数据结构 算法] A*算法--罗马尼亚度假问题(实验课作业)
  17. 究竟wifi是怎么定位我的
  18. 2018年区块链红黑榜-千氪
  19. 在OpenCV里使用背景去除
  20. 机器学习数据集!CV、NLP 一应俱全

热门文章

  1. JS任意元素的任意值运动
  2. 软件测试:数据库笔记(2)
  3. #榜样的力量#天玑数据大脑疫情风险感知预警平台“智疫通”丨数据猿新冠战“疫”公益策划...
  4. 使用Python从逐月降水量数据中获取某位置的全年降水量
  5. android socket双向,Android中socketpair双向通信详解
  6. 回顾2022,展望2023
  7. Linux系统常见的压缩与解压命令
  8. 压缩解压命令(gzip、gunzip | tar | zip、unzip | bzip2、bunzip2)
  9. Python: 制作精简的Python绿色发行包
  10. PHPCMS v9 文章采集