zoukankan      html  css  js  c++  java
  • 字段查找如何去掉数据库重复记录并且只保留一条记录

    最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法--字段查找

        在n条记录里,存在着些雷同的记录,如何能用SQL语句,删除掉重复并保留一条呢?方法如下:

        

        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)

    文章结束给大家分享下程序员的一些笑话语录: 姿势要丰富,经常上百度!

  • 相关阅读:
    IntelliJ IDEA 常用设置讲解
    Maven
    FileStram文件正由另一进程使用,该进程无法访问该文件,解决方法
    IIS 调用Microsoft.Office.Interop.Word.Documents.Open 返回为null
    .NET 中的 async/await 异步编程
    PHP表单验证内容是否为空
    PHP中的魔术变量
    PHP中的function函数详解
    PHP中的循环while、do...while、for、foreach四种循环。
    利用switch语句进行多选一判断。
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3089643.html
Copyright © 2011-2022 走看看