数据表中存在多条相同数据,相同数据只保留一条,多的删除掉,写出SQL语句
2013-07-12
展开全部
select distinct name from user表示从user表中查找名字不相同的记录,筛选了重复的数据
推荐于2018-04-20
展开全部
DELETE FROM EMP E
WHERE E.id> (SELECT MIN(X.id) FROM EMP X WHERE X.EMP_NO = E.EMP_NO and ...);语句中and后面是所有出标志列id的字段全部相同,那么则删除比最小ID大的所有相同记录。因为最小的就一条记录,所以结果就只剩一条记录了。
WHERE E.id> (SELECT MIN(X.id) FROM EMP X WHERE X.EMP_NO = E.EMP_NO and ...);语句中and后面是所有出标志列id的字段全部相同,那么则删除比最小ID大的所有相同记录。因为最小的就一条记录,所以结果就只剩一条记录了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-12
展开全部
用临时表会吗?不会的话你还是写程序去删除吧!稳妥。首先查出来你要处理的数据:如:在律师表里查同一律师,相同律所的数据
select TrueName,LawfirmServed,COUNT(TrueName) as LawyerCount from wl_lawyer2info
group by TrueName,LawfirmServed
having COUNT(TrueName)>1然后,在程序里把数据挨个取出来,取出来的数据肯定是个集合,遍历出来,留一条(在这里你可以去自由选择要保留的数据),其他的都删除掉。 最后,在数据库表上加唯一键索引,不让重复数据再次进入!
select TrueName,LawfirmServed,COUNT(TrueName) as LawyerCount from wl_lawyer2info
group by TrueName,LawfirmServed
having COUNT(TrueName)>1然后,在程序里把数据挨个取出来,取出来的数据肯定是个集合,遍历出来,留一条(在这里你可以去自由选择要保留的数据),其他的都删除掉。 最后,在数据库表上加唯一键索引,不让重复数据再次进入!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询