SQL删除重复数据的方法

78次阅读
没有评论

共计 1708 个字符,预计需要花费 5 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章将为大家详细讲解有关 SQL 删除重复数据的方法,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

在 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 * from people 
where peopleId in (select peopleId from people group by peopleId having count(peopleId)   1)

扩展:

删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有 rowid 最小的记录

delete from people
where peopleName in (select peopleName from people group by peopleName having count(peopleName)   1)
and peopleId not in (select min(peopleId) from people group by peopleName having count(peopleName) 1)

查找表中多余的重复记录(多个字段)

select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*)   1)

删除表中多余的重复记录(多个字段),只留有 rowid 最小的记录

delete from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*)   1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*) 1)

查找表中多余的重复记录(多个字段),不包含 rowid 最小的记录

select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*)   1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*) 1)

消除一个字段的左边的第一位:

update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like  村 %

消除一个字段的右边的第一位:

update tableName set [Title]=left([Title],(len([Title])-1)) where Title like  % 村 

假删除表中多余的重复记录(多个字段),不包含 rowid 最小的记录

update vitae set ispass=-1where peopleId in (select peopleId from vitae group by peopleId

关于“SQL 删除重复数据的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计1708字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)