数据库去除重复
A. access中sql如何去重复数据
access中sql如何去重复数据?现在做自媒体的通常都是一人多号、多平台同步更新,其中一部分都是自有网站或博客的站长,小编就是其中之一。小编就利用当前最盛行的博客程序WordPress搭建起了自己的网站,因为刚开始做自媒体,内容还不够多,所以用火车头采集器采集了一些数据来充实自己网站。但是因为在采集过程中没有验证标题是否唯一,从而导致出现大量标题重复的文章。
为了解决这个问题,我需要从本地火车头采集器数据和服务器WordPress数据中分别删除重复的数据。火车头采集器使用的是access数据库,WordPress使用的是MySQL数据库。
工具原料电脑互联网
方法/步骤分步阅读
1
/6
一、access数据库删除重复数据保留唯一记录
1.打开火车头本地数据文件SpiderResult.mdb,依次点击菜单“创建”——“查询设计”打开查询设计窗口。
2
/6
2.打开查询设计窗口会提示添加表,这里不添加所以点击“关闭”,然后在设计窗口空白处点击右键,选择“SQL试图(Q)”。
3
/6
B. 删除数据库中重复数据的几个方法
方法一
declare @max integer,@id integer
declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
delete from 表名 where 主字段 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0
方法二
有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。
1、对于第一种重复,比较容易解决,使用 select distinct * from tableName 就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。
2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下:
假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集
select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)
C. 易语言edb数据库能去重复吗
易语言edb数据库能去重复。易语言edb数据库去重复的步骤如下:
1、易语言新建程序,新建一个Windows窗口程序,
2、添加精易模块,
3、输入命令文本:去重复文本(“1233546548732”,“”),
4、调试运行一下看下效果。
D. 数据库 查询去掉重复项
distinct
b,c
可以这么用distinct
但是,如果你加上a字段,就不行了,因为a没有重复,以a为索引,就不能只留下一个(b,c)
select
distinct
b,c
from
table_name
E. 如何删除数据库中的重复数据
有两个意义上的重复记录
①完全重复的记录,也即所有字段均重复的记录。
②部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。
1、对于第一种重复,比较容易解决,使用
selectdistinct*fromtableName
这样就可以得到无重复记录的结果集。然后通过临时表实现对数据的维护。
selectdistinct*into#TmpfromtableName
droptabletableName
select*intotableNamefrom#Tmp
droptable#Tmp
#Tmp为什么系统参数,tableName为要操作的表名。
2、第二类重复问题通常要求保留重复记录中的第一条记录,操作方法如下:
假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集
selectidentity(int,1,1)asautoID,*into#TmpfromtableName
selectmin(autoID)asautoIDinto#Tmp2from#TmpgroupbyName,autoID
select*from#TmpwhereautoIDin(selectautoIDfrom#tmp2)
最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)
F. 如何查找和删除数据库中的重复数据
法一:
用Group
by语句
此查找很快的select
count(num),
max(name)
from
student
–查找表中num列重复的,列出重复的记录数,并列出他的name属性group
by
numhaving
count(num)
>;1
–按num分组后找出表中num列重复,即出现次数大于一次delete
from
student(上面Select的)这样的话就把所有重复的都删除了。—–慎重法二:当表比较大(例如10万条以上)时,这个方法的效率之差令人无法忍受,需要另想办法:—-
执行下面SQL语句后就可以显示所有DRAWING和DSNO相同且重复的记录SELECT
*
FROM
EM5_PIPE_PREFABWHERE
ROWID!=(SELECT
MAX(ROWID)
FROM
EM5_PIPE_PREFAB
D
–D相当于First,SecondWHERE
EM5_PIPE_PREFAB.DRAWING=D.DRAWING
ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);—-
执行下面SQL语句后就可以删除所有DRAWING和DSNO相同且重复的记录DELETE
FROM
EM5_PIPE_PREFABWHERE
ROWID!=(SELECT
MAX(ROWID)
FROM
EM5_PIPE_PREFAB
DWHERE
EM5_PIPE_PREFAB.DRAWING=D.DRAWING
ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);法一:
用Group
by语句
此查找很快的select
count(num),
max(name)
from
student
–查找表中num列重复的,列出重复的记录数,并列出他的name属性group
by
numhaving
count(num)
>;1
–按num分组后找出表中num列重复,即出现次数大于一次delete
from
student(上面Select的)这样的话就把所有重复的都删除了。—–慎重法二:当表比较大(例如10万条以上)时,这个方法的效率之差令人无法忍受,需要另想办法:—-
执行下面SQL语句后就可以显示所有DRAWING和DSNO相同且重复的记录SELECT
*
FROM
EM5_PIPE_PREFABWHERE
ROWID!=(SELECT
MAX(ROWID)
FROM
EM5_PIPE_PREFAB
D
–D相当于First,SecondWHERE
EM5_PIPE_PREFAB.DRAWING=D.DRAWING
ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);—-
执行下面SQL语句后就可以删除所有DRAWING和DSNO相同且重复的记录DELETE
FROM
EM5_PIPE_PREFABWHERE
ROWID!=(SELECT
MAX(ROWID)
FROM
EM5_PIPE_PREFAB
DWHERE
EM5_PIPE_PREFAB.DRAWING=D.DRAWING
ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);
G. sql数据库删除重复记录
delete from table where id not in
select min(id) from table group by name,url(如果有其他行辨别那么也在这里加上)
我保留的是id最小的行,你也可以留最大的行
我没办法加括号,写了子查询加了括号就发不上来
H. 数据库中怎么删除重复的记录,只保留唯一的记录
方法很多,说一个最简单的。
先建一个表,结构和原来的表一样,但是在你要去重的列建立一个主键,并设置“忽略重复键”,把原表中的所有数据插入这个新表,
此时新表中的数据就已经是非重复的了。
把原表数据都删掉,把新表中的数据都导回来就ok了
I. 如何删除数据库中的重复记录
select
distinct
*
from
表名
distinct
表示去除重复项,必须放到列字段的前面。
J. phpmyadmin管理去除mysql数据库重复数据
给你一个示例SQL,自己修改一下。
delete p1 from tb_d as p1, tb_d as p2
where p1.col2=p2.col2
and p1.col3=p2.col3
and ...-- 这里省略了,有多少给字段是相同的,这就写几个and条件。
and p1.id > p1.id;