如何查找和删除数据库中的重复数据

2023-06-30   


法一: 用Group by语句 此查找很快的
   select count(num), max(name) from student –查找表中num列重复的,列出重复的记录数,并列出他的name属性
   group by num
   having count(num) >;1 –按num分组后找出表中num列重复,即出现次数大于一次
   delete from student(上面Select的)
   这样的话就把所有重复的都删除了。—–慎重
   法二:当表比较大(例如10万条以上)时,这个方法的效率之差令人无法忍受,需要另想办法:
   —- 执行下面SQL语句后就可以显示所有DRAWING和DSNO相同且重复的记录
   SELECT * FROM EM5_PIPE_PREFAB
   WHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D –D相当于First,Second
   WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND
   EM5_PIPE_PREFAB.DSNO=D.DSNO);
   —- 执行下面SQL语句后就可以刪除所有DRAWING和DSNO相同且重复的记录
   DELETE FROM EM5_PIPE_PREFAB
   WHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D
   WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND
   EM5_PIPE_PREFAB.DSNO=D.DSNO);


相关内容:

  1. 如何高效率的查找一个月以内的数据
  2. 介绍一下海量数据的处理方法
  3. 数据库测试通常都包括哪些方面
  4. Oracle中delete,truncate和drop的区别
  5. 为什么UNION ALL比UNION快
  6. 数据库连接池的工作原理