ASP SQL 删除重复记录 (200分)
Article表title字段有重复记录其它字段不重复怎么把重复的数据行删除保留一条数据库有1G6万条数据,机器又不是很好,所以要求效率高一点的代码最好是要以经写好的AS...
Article表title字段有重复记录 其它字段不重复 怎么把重复的数据行删除
保留一条 数据库有1G 6万条数据,机器又不是很好,所以要求效率高一点的代码 最好是要以经写好的ASP代码
问题解决了的话再加100分 展开
保留一条 数据库有1G 6万条数据,机器又不是很好,所以要求效率高一点的代码 最好是要以经写好的ASP代码
问题解决了的话再加100分 展开
7个回答
展开全部
注:,建议先备份下数据库...
要是记录的其他字段也重复的话就不用这么麻烦,用网上的资料也可以.
但是只有一条记录重复 比如“UserName” 这样的话 就用以下方法,即使是所有字段都相同 那下面方式也是用关键字段的方式来判断,所以是可以用的
1.建立一个相同的表 如 New_Table,字段属性都相同
2.建立个Asp文件
<!--include file="conn.asp"-->
<%
server.script.timeout=9999
set rs=server.createobject("adodb.recordset")
sql="select * from [Old_Table]"
rs.open sql,conn,1,1
if not rs.eof then
do while not rs.eof
UserName=rs("UserName") '这个为判断重复的字段名
set Rs1=server.createobject("adodb.recordset")
Sql1="select * from [New_Table] where UserName='"&UserName&"'"
Rs1.Open Sql1,conn,1,3
if Rs1.eof then '如果记录集不存在 ,那么就插入记录
Rs1.Addnew
Rs1("UserName")=Rs("UserName") '其他字段也写上....
Rs1.update
end if
Rs1.close
set Rs1=nothing
rs.movenext
loop
end if
Rs.Close
set Rs=nothing
%>
3.不闲麻烦的话 把老数据表的记录删除后 重新再用以上方法把新记录导入.
要是嫌麻烦,那就把老数据表删除,把新数据表改个名字 OK....
千万记得备份数据库啊.....以上方法是可行的.注意除了ID字段之外别的都要写进去 Rs1("字段")=Rs("字段")
要是记录的其他字段也重复的话就不用这么麻烦,用网上的资料也可以.
但是只有一条记录重复 比如“UserName” 这样的话 就用以下方法,即使是所有字段都相同 那下面方式也是用关键字段的方式来判断,所以是可以用的
1.建立一个相同的表 如 New_Table,字段属性都相同
2.建立个Asp文件
<!--include file="conn.asp"-->
<%
server.script.timeout=9999
set rs=server.createobject("adodb.recordset")
sql="select * from [Old_Table]"
rs.open sql,conn,1,1
if not rs.eof then
do while not rs.eof
UserName=rs("UserName") '这个为判断重复的字段名
set Rs1=server.createobject("adodb.recordset")
Sql1="select * from [New_Table] where UserName='"&UserName&"'"
Rs1.Open Sql1,conn,1,3
if Rs1.eof then '如果记录集不存在 ,那么就插入记录
Rs1.Addnew
Rs1("UserName")=Rs("UserName") '其他字段也写上....
Rs1.update
end if
Rs1.close
set Rs1=nothing
rs.movenext
loop
end if
Rs.Close
set Rs=nothing
%>
3.不闲麻烦的话 把老数据表的记录删除后 重新再用以上方法把新记录导入.
要是嫌麻烦,那就把老数据表删除,把新数据表改个名字 OK....
千万记得备份数据库啊.....以上方法是可行的.注意除了ID字段之外别的都要写进去 Rs1("字段")=Rs("字段")
展开全部
1. 删除全部重复记录(慎用)
Delete 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
2. 保留一条(这个应该是你所需要的)
Delete HZT Where ID Not In (Select Max(ID) From HZT Group By Title)
注:此处保留ID最大一条记录
Delete 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
2. 保留一条(这个应该是你所需要的)
Delete HZT Where ID Not In (Select Max(ID) From HZT Group By Title)
注:此处保留ID最大一条记录
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
conn.execute("Delete From Article Where title not In (Select title From Article Group By title)")
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-05-28
展开全部
现在的人啊,真的是什么人都有
delete distinct title from Article 这样的语词也给我发出来告诉我这是删除重复的语句,要是我真用这条,我这半年来的努力都白忙了
delete distinct title from Article 这样的语词也给我发出来告诉我这是删除重复的语句,要是我真用这条,我这半年来的努力都白忙了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
呵呵
想学就从头学,想用就花钱买
想学就从头学,想用就花钱买
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询