【转】SQL删除某些字段重复的记录(只保留一条)

会员数据需要用到的是下面三个字段:ID(自增),MemberName,MemberAddress.只要会员姓名与会员地址相同就认为是重复记录,重复记录在删除时只保留ID最大的那个.SQL如下:
delete MemberInfo where ID not in (
select max(ID) from MemberInfo group by MemberName, MemberAddress)

not in的效率可能会低些,但因为是直接操作数据库,所以这并不重要.这个句子还是非常的简单有效的.
   
    在真正的删除操作前,通常会先了解一下重复记录的情况.可以使用下面的句子:

 

SELECT COUNT(MemberName) AS TheCount, MemberName, MemberAddress
FROM MemberInfo
GROUP BY MemberName, MemberAddress
HAVING (COUNT(*> 1)

 

posted @ 2009-10-23 10:48  哥本哈根  阅读(263)  评论(0编辑  收藏  举报