SQL删除重复数据的方法
这篇文章将为大家详细讲解有关SQL删除重复数据的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
在sql中,可以使用select语句删除重复数据,语法为:“select * from 字段 where 字段id in (select 字段id from 字段 group by 字段 having count(字段id) > 1)”。
本教程操作环境:windows7系统、mysql8.0版本、Dell G3电脑。
用SQL语句,删除掉重复项只保留一条
在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢
查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select*frompeoplewherepeopleIdin(selectpeopleIdfrompeoplegroupbypeopleIdhavingcount(peopleId)>1)
扩展:
删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
deletefrompeoplewherepeopleNamein(selectpeopleNamefrompeoplegroupbypeopleNamehavingcount(peopleName)>1)andpeopleIdnotin(selectmin(peopleId)frompeoplegroupbypeopleNamehavingcount(peopleName)>1)
查找表中多余的重复记录(多个字段)
select*fromvitaeawhere(a.peopleId,a.seq)in(selectpeopleId,seqfromvitaegroupbypeopleId,seqhavingcount(*)>1)
删除表中多余的重复记录(多个字段),只留有rowid最小的记录
deletefromvitaeawhere(a.peopleId,a.seq)in(selectpeopleId,seqfromvitaegroupbypeopleId,seqhavingcount(*)>1)androwidnotin(selectmin(rowid)fromvitaegroupbypeopleId,seqhavingcount(*)>1)
查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select*fromvitaeawhere(a.peopleId,a.seq)in(selectpeopleId,seqfromvitaegroupbypeopleId,seqhavingcount(*)>1)androwidnotin(selectmin(rowid)fromvitaegroupbypeopleId,seqhavingcount(*)>1)
消除一个字段的左边的第一位:
updatetableNameset[Title]=Right([Title],(len([Title])-1))whereTitlelike'村%'
消除一个字段的右边的第一位:
updatetableNameset[Title]=left([Title],(len([Title])-1))whereTitlelike'%村'
假删除表中多余的重复记录(多个字段),不包含rowid最小的记录
updatevitaesetispass=-1wherepeopleIdin(selectpeopleIdfromvitaegroupbypeopleId
关于“SQL删除重复数据的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。