求快速遍历数据库的算法{在线等} 急急急急!!

Description of your first forum.

求快速遍历数据库的算法{在线等} 急急急急!!

帖子yercomputer » 星期一, 2006年8月14日 15:45


本人要写一个数据库程序,删除多余的重复的记录,我使用两重循环方法,一个是数组,一个是数据集来对比,循环,判断如果相同删除,但是数据量太大(80万条)。首先速度慢的很是个问题,其次定义数组问题,
var
s:array[0..999999]  of string;//出现错误,溢出
请问怎么办?
谢谢!!
 
 
 

求快速遍历数据库的算法{在线等} 急急急急!!

帖子清新空气 » 星期一, 2006年8月14日 15:46


为什么sql语句删除?
可以直接删除重复记录呀!
 
 
 

求快速遍历数据库的算法{在线等} 急急急急!!

帖子yangxiao_jiang » 星期一, 2006年8月14日 15:47


为什么不用 sql语句来实现这个.
 
 
 

求快速遍历数据库的算法{在线等} 急急急急!!

帖子yercomputer » 星期一, 2006年8月14日 15:48


有吗?
怎么写?
谢谢!!
 
 
 

求快速遍历数据库的算法{在线等} 急急急急!!

帖子yercomputer » 星期一, 2006年8月14日 15:54


要全部字段都一样,才认为是相同,SQL 的删除语句怎么写?
 
 
 

求快速遍历数据库的算法{在线等} 急急急急!!

帖子dey-999 » 星期一, 2006年8月14日 16:02


查出重复字段记录:select 所有字段 from 表 group by 所有字段 having count(*)>1
放到数组中,然后再按照你原来的循环就快了
 
 
 

求快速遍历数据库的算法{在线等} 急急急急!!

帖子cqwty » 星期一, 2006年8月14日 16:00


你写的这个程序是不是帮别人的系统清洗数据啊,这是谁设计的数据库啊,一个表里面存在重复的记录都不进行处理,晕死!
 
 
 

求快速遍历数据库的算法{在线等} 急急急急!!

帖子VictorWoo » 星期一, 2006年8月14日 16:12


晕,用一个SQL语句就可以了
select distinct ...返回不重复的集合
 
 
 

求快速遍历数据库的算法{在线等} 急急急急!!

帖子清新空气 » 星期一, 2006年8月14日 16:31


这样写,删除得复记录
delete * from 表 where 字段1+字段2+字段3 in
(select 字段1+字段2+字段3 from 表 group by 字段1+字段2+字段3 having count(字段1+字段2+字段3)>1)
或是
delete * from 表 where 字段1+字段2+字段3 not in (select distinct 字段1+字段2+字段3 from 表)
也可以这样
select distinct * into newtable from your table
 
 
 

求快速遍历数据库的算法{在线等} 急急急急!!

帖子yercomputer » 星期一, 2006年8月14日 16:44


在sql可以但是在Access中就没有错误了
艾 阿
 
 
 

求快速遍历数据库的算法{在线等} 急急急急!!

帖子gxw » 星期一, 2006年8月14日 16:47


大笔一挥:同意 select distinct * into newtable from your table [:D]
 
 
 

求快速遍历数据库的算法{在线等} 急急急急!!

帖子dcms » 星期一, 2006年8月14日 17:05


为什么要数据库?
可以考虑一下 hash table嘛!
 
 
 

求快速遍历数据库的算法{在线等} 急急急急!!

帖子yercomputer » 星期一, 2006年8月14日 17:53


多人接受答案了。
 
 
 

求快速遍历数据库的算法{在线等} 急急急急!!

帖子VictorWoo » 星期二, 2006年8月15日 09:19


倒,用in和not in是巨慢无比,咱提的select distinct分都被抢了?