这篇文章将为大家详细讲解有关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删除重复数据的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。