广告
返回顶部
首页 > 资讯 > 数据库 >MySQL如何查询和删除重复记录
  • 108
分享到

MySQL如何查询和删除重复记录

2024-04-02 19:04:59 108人浏览 安东尼
摘要

这篇文章运用简单易懂的例子给大家介绍Mysql如何查询和删除重复记录,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。查找所有重复标题的记录:select title,count

这篇文章运用简单易懂的例子给大家介绍Mysql如何查询和删除重复记录,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

查找所有重复标题的记录:

select title,count(*) as count from user_table group by title having count>1;
SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC

一、查找重复记录

1、查找全部重复记录

SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC

2、过滤重复记录(只显示一条)

Select * From HZT Where ID In (Select Max(ID) From HZT Group By Title)

注:此处显示ID最大一条记录

二、删除重复记录

1、删除全部重复记录(慎用

Delete 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)

2、保留一条(这个应该是大多数人所需要的 ^_^)

Delete HZT Where ID Not In (Select Max(ID) From HZT Group By Title)

注:此处保留ID最大一条记录

三、举例

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)

四、补充

有两个以上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

1、对于第一种重复,比较容易解决,使用

select distinct * from tableName

就可以得到无重复记录的结果集。

如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除

select distinct * into #Tmp from tableName 
drop table tableName 
select * into tableName from #Tmp 
drop table #Tmp

发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。

2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下

假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集

select identity(int,1,1) as autoID, * into #Tmp from tableName 
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID 
select * from #Tmp where autoID in(select autoID from #tmp2)

关于mysql如何查询和删除重复记录就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL如何查询和删除重复记录

本文链接: https://www.lsjlt.com/news/38406.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL如何查询和删除重复记录
    这篇文章运用简单易懂的例子给大家介绍MySQL如何查询和删除重复记录,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。查找所有重复标题的记录:select title,count...
    99+
    2022-10-18
  • MySQL中查询、删除重复记录的方法大全
      前言 本文主要给大家介绍了关于MySQL中查询、删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: 1 select title,count(*) as cou...
    99+
    2018-05-22
    MySQL中查询 删除重复记录的方法大全
  • MySQL中查询、删除重复记录的方法大全
    前言本文主要给大家介绍了关于MySQL中查询、删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍:查找所有重复标题的记录:select title,count(*) as count&n...
    99+
    2022-08-10
    MySQL 查询 删除
  • MySQL中删除重复记录
    工作中,我们经常有需要删除一些重复数据的这种需求。重复数据可能是程序bug造成的 好,让我们看看如何删除这些重复数据 删除重复数据的思路呢,是这样的,查看根据这个重复字段分组后的结果有没有大于1的情况如果有...
    99+
    2022-10-18
  • MySQL中如何删除表重复记录
    本篇文章给大家分享的是有关MySQL中如何删除表重复记录,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 创建实验...
    99+
    2022-10-18
  • MySQL 如何查找并删除重复记录的实现
    大家好,我是只谈技术不剪发的 Tony 老师。由于一些历史原因或者误操作,可能会导致数据表中存在重复的记录;今天我们就来谈谈如何查找 MySQL 表中的重复数据以及如何删除这些重复的记录。 创建示例表 首先创建一个示...
    99+
    2022-05-11
    MySQL 查找重复记录 MySQL 删除重复记录
  • MySQL 中如何删除单表重复记录
    本篇文章给大家分享的是有关MySQL 中如何删除单表重复记录,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、创建表test001 点击...
    99+
    2022-10-18
  • mysql中怎样删除重复记录
    这期内容当中小编将会给大家带来有关mysql中怎样删除重复记录,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、确认一下基表和过渡表的数据量。mysql> sele...
    99+
    2022-10-18
  • MySQL中怎么删除重复的记录
    MySQL中怎么删除重复的记录,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、查找全部重复记录select * ...
    99+
    2022-10-18
  • mysql中删除重复记录的方法
    这篇文章主要讲解了“mysql中删除重复记录的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql中删除重复记录的方法”吧! ...
    99+
    2022-10-18
  • 如何删除MySQL表中的所有重复记录?
    要从表中删除重复记录,我们可以使用 DELETE 命令。现在让我们创建一个表。 mysql> create table DuplicateDeleteDemo -> ( -> id int, -...
    99+
    2023-10-22
  • Oracle如何删除表中重复记录
    1    引言 在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来 读诸 多不便,那么怎么删除这些重复没...
    99+
    2022-11-30
    oracle 如何 删除
  • 数据库怎么查询排除重复记录
    这篇文章主要介绍“数据库怎么查询排除重复记录”,在日常操作中,相信很多人在数据库怎么查询排除重复记录问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”数据库怎么查询排除重复记录”...
    99+
    2022-10-18
  • sql 单表/多表查询去除重复记录
      单表distinct  多表group by  group by 必须放在 order by 和 limit之前,不然会报错。  1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来...
    99+
    2022-10-18
  • MySQL 如何查找删除重复行
    目录一、如何查找重复行二、如何删除重复行三、如何查找多列上的重复四、错误的查询语句五、几种正确的方法一、如何查找重复行 第一步是定义什么样的行才是重复行。多数情况下很简单:它们某一...
    99+
    2022-11-12
  • 【探索】两种查询和删除重复记录的方法及其性能比较
    这里我来给出两种查询和删除重复记录的方法,一种是使用rowid辅助完成的,另外一种是借助分析函数的力量来完成的。这两种方法的执行效率相对其他方法是高效的。即便如此,这两种方法之间也有着本质上的性能区别,我将通过实验的方式给大家展示一下这两种...
    99+
    2023-06-06
  • mysql删除数据库中重复记录的方法
    这篇文章给大家分享的是有关mysql删除数据库中重复记录的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql删除数据库中重复记录的步骤:1、统计重复数据;2、使用“SE...
    99+
    2022-10-18
  • mysql表中删除重复记录,只保留一条记录的操作
    mysql表中两个字段重复记录,只保留一条记录的操作 例如有一张学生表 其中name 和 class 相同的视为重复记录,需要保留一条记录,删除重复记录, 两种操作方式如下: 方法一: group ...
    99+
    2023-09-27
    mysql 数据库
  • 在 MySQL 数据库中删除重复记录的步骤
    在 MySQL 数据库中删除重复记录的步骤 当我们在处理数据库中的数据时,有时候会出现重复记录的情况,这些重复记录会影响数据的正确性,需要将其删除。下面是在 MySQL 数据库中删除重复记录的步骤: 1. 查找重复记录 首先,我们需要...
    99+
    2023-09-01
    数据库 mysql sql java 开发语言
  • MySQL中怎么查询多条不重复记录值
    今天就跟大家聊聊有关MySQL中怎么查询多条不重复记录值,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。tableid name1 a2 b3 c4 ...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作