| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3029 人关注过本帖
标题:如何更好的删除重复数据?
取消只看楼主 加入收藏
llljjjmmm1
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-9-23
收藏
 问题点数:0 回复次数:6 
如何更好的删除重复数据?
假设我要做一个非常大的数据库,比如说机选彩票号码,随机产生的号码如何排除产生的重复号组,如
02 06 14 17 22 31 -02
04 09 13 25 27 32 -06
………
03 07 13 22 28 29 -13
04 09 13 25 27 32 -06

你一说,我就会有灵感。呵呵!
搜索更多相关主题的帖子: 彩票 数据库 删除 号码 灵感 
2006-09-27 20:37
llljjjmmm1
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-9-23
收藏
得分:0 

以下是我做的一个,直接在原库里查找重复数据,结果我试了一下,如果库里有10000条以上记录的话,排除一次要半个小时以上,呵呵,差点晕倒。

SET DELETED ON
USE ssqjxsj_dat.dbf
Dimension gaArrayOne(6)

GO TOP
xx=0
jsq=1
c6HH1=''
c6HH2=''
DO while .NOT.EOF()
SCATTER TO gaArrayOne
For i=1 To 6
c6HH1=c6HH1+ALLTRIM(STR(gaArrayOne(i)))
ENDFOR
SKIP
c6HH2=''
DO while .NOT.EOF()
If c6HH1=c6HH2
DELETE
xx=xx+1 &&记录已删除的数量。
SKIP
SCATTER TO gaArrayOne
For i=1 To 6
c6HH2=c6HH2+ALLTRIM(STR(gaArrayOne(i)))
ENDFOR
ELSE
SKIP
SCATTER TO gaArrayOne
For i=1 To 6
c6HH2=c6HH2+ALLTRIM(STR(gaArrayOne(i)))
ENDFOR
ENDIF

ENDDO
? xx
jsq=jsq+1
GO jsq
ENDDO


如果我们交流的知识有所保留,那么我们都将慢慢落后。
2006-09-28 19:53
llljjjmmm1
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-9-23
收藏
得分:0 
嗯!我试了,很有效。

如果我们交流的知识有所保留,那么我们都将慢慢落后。
2006-09-29 12:59
llljjjmmm1
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-9-23
收藏
得分:0 

晕啊。我试了,速度是非常快的,几乎在1秒内完成,但是原库是我隨机产生了20000条记录,但过滤后只产生了50条记录,其他记录没有了。我把原库索引了后进去看了一下,没有那第多重复的记录。至少过滤后应有10000条以上记录才对啊。


如果我们交流的知识有所保留,那么我们都将慢慢落后。
2006-09-30 12:31
llljjjmmm1
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-9-23
收藏
得分:0 

我找了,那个原库的字段是数字型的,找不到原因啊。我想把程序和数据库传上来,怎么传啊?


如果我们交流的知识有所保留,那么我们都将慢慢落后。
2006-09-30 17:58
llljjjmmm1
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-9-23
收藏
得分:0 
谢谢 !我再试试

如果我们交流的知识有所保留,那么我们都将慢慢落后。
2006-10-07 22:01
llljjjmmm1
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-9-23
收藏
得分:0 
嗯,这回成功了.

如果我们交流的知识有所保留,那么我们都将慢慢落后。
2006-10-07 22:06
快速回复:如何更好的删除重复数据?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017931 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved