Android sql数据库数据去重,有一张表user,字段name,sex,phone,有多条记录这三个字段都是一样的

Android sql数据库数据去重,有一张表user,字段name,sex,phone,有多条记录这三个字段都是一样的,第1张

首先,用count语句把名字重复的筛选出来,count(1)

>1

然后,在结果中再使用自连接,查询电话相同或者不同的就得到结果了,因为相同姓名的,一般性别都一样,如果不一样,则需要再多连接一次进行筛选删除

若使用的是vivo手机,可查看以下方法:

1、OriginOS/Funtouch OS 3.0及以上系统删重复联系人的方法

进入设置--(应用与权限)--(系统应用设置)--联系人--合并重复联系人/去掉重复联系人/联系人去重--选择联系人--合并即可将几个相同联系人的资料完全重合,相当于删除重复的联系人~

注:分别存储在SIM卡和手机中的相同联系人不算重复联系人。

2、Funtouch OS 3.0以下系统删重复联系人的方法

进入手机联系人--左菜单键--联系人去重--选择联系人--合并即可将几个相同联系人的资料完全重合,相当于删除了重复的联系人

注:分别存储在SIM卡和手机中的相同联系人不算重复联系人。

不会是id都相同吧

select A from 表 group by A having count(A)>1

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断

select * from people

where peopleId in (select peopleId from people group by peopleId having count(peopleId) >1)

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

delete from people

where peopleId in (select peopleId from people group by peopleId having count(peopleId) >1)

and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)

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

select * from vitae a

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

4、删除表中多余的重复记录(多个字段),只留有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)

5、查找表中多余的重复记录(多个字段),不包含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)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9950951.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存