`
dimple
  • 浏览: 95668 次
  • 性别: Icon_minigender_1
  • 来自: 辽宁
社区版块
存档分类
最新评论

mysql查询重复字段

阅读更多

数据库中有个大表,需要查找其中的名字有重复的记录id,以便比较。

如果仅仅是查找数据库中name不重复的字段,很容易

SELECT min(`id`),`name`
FROM `table`
GROUP BY `name`;

但是这样并不能得到说有重复字段的id值。(只得到了最小的一个id值)

查询哪些字段是重复的也容易

SELECT `name`,count(`name`) as count
FROM `table`
GROUP BY `name` HAVING count(`name`) >1
ORDER BY count DESC;

但是要一次查询到重复字段的id值,就必须使用子查询了,于是使用下面的语句。

SELECT `id`,`name`
FROM `table`
WHERE `name` in ( 
    
SELECT `name`
    
FROM `table`
    
GROUP BY `name` HAVING count(`name`) >1
);

但是这条语句在mysql中效率太差,感觉mysql并没有为子查询生成零时表。

于是使用先建立零时表

create table `tmptable` as (
    
SELECT `name`
    
FROM `table`
    
GROUP BY `name` HAVING count(`name`) >1
);

然后使用多表连接查询

SELECT a.`id`, a.`name`
FROM `table` a, `tmptable` t
WHERE a.`name` = t.`name`;

结果这次结果很快就出来了。

分享到:
评论

相关推荐

    解析mysql不重复字段值求和

    在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是...

    MySQL 查询重复内容只显示一条

    标题“MySQL 查询重复内容只显示一条”涉及到的是在MySQL数据库中如何处理重复数据的问题。在数据分析或数据存储过程中,有时我们需要找出并处理重复的记录,只保留一条作为代表。这通常可以通过聚合函数和分组来...

    MySQL根据某一个或者多个字段查找重复数据的sql语句

    1.表中有id和name 两个字段,查询出name重复的所有数据 select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1) 2、查询出所有数据进行分组之后,和重复数据...

    Mysql查询重复语句

    ### MySQL 查询重复语句详解 在数据库管理与维护过程中,数据的一致性和准确性至关重要。当涉及到数据去重时,MySQL 提供了多种方法来帮助我们有效地处理数据中的重复记录。本文将详细介绍如何利用 MySQL 查询语句...

    MySQL 查询某个字段不重复的所有记录

    在MySQL中,当我们需要查询某个字段不重复的所有记录时,通常会使用`DISTINCT`关键字。然而,`DISTINCT`只能用于去除单个字段的重复值。如果我们要去除多个字段的重复组合,就需要采取更复杂的方法。在提供的描述中...

    MySQL大表中重复字段的高效率查询方法

    MySQL大表重复字段应该如何查询到呢?这是很多人都遇到的问题,下面就教您一个MySQL大表重复字段的查询方法,供您参考。 数据库中有个大表,需要查找其中的名字有重复的记录id,以便比较。如果仅仅是查找数据库中name...

    mysql多字段查询重复数据.txt

    mysql多字段查询重复数据.txt

    mysql查询根据列按条件统计总数

    ### MySQL 查询根据列按条件统计总数 在MySQL中,经常需要对数据进行统计分析,特别是针对某一特定条件下的数据总量的统计。此类操作通常涉及到`COUNT()`函数与`GROUP BY`语句的结合使用,有时还需要与其他子查询或...

    MySQL删除重复记录

    删除MySQL中的重复记录是一项重要的数据清洗任务,它有助于维护数据库的完整性和提高查询效率。通过使用唯一键约束、`LOAD DATA INFILE`语句的不同选项,可以有效地处理重复记录问题。然而,在实际操作中,还需要...

    mysql自增字段重排 mysql删除表后自增字段从1开始.pdf

    在MySQL数据库中,自增字段(AUTO_INCREMENT)是一种常见的特性,用于在插入新记录时自动为该字段生成唯一的序列编号。这个字段通常用于主键,确保每个记录的唯一性。以下是对MySQL自增字段相关知识点的详细说明: ...

    mysql多字段删除重复数据保留id最大的.txt

    mysql多字段删除重复数据保留id最大的.txt

    解决CodeSmith不能读取MySql数据库字段说明的问题

    本文将深入探讨如何解决在使用CodeSmith时遇到的无法读取MySql数据库字段说明的问题。CodeSmith是一款强大的C#代码生成工具,它允许开发者自定义模板来快速生成代码,从而减少手动编写重复性代码的工作量。然而,在...

    MySQL查询重复数据(删除重复数据保留id最小的一条为唯一数据)

    本文主要探讨如何查询并删除MySQL中的重复数据,同时保留每个重复组中ID最小的一条记录。 首先,我们需要找到表中的重复数据。假设我们有一个名为`brand`的表,其中包含品牌名称`brandName`和其他字段,而我们想要...

    解决CodeSmith不能读取MySQL字段备注说明

    本文主要针对"CodeSmith无法读取MySQL字段备注说明"的问题提供解决方案,并详细介绍相关知识点。 CodeSmith是一款强大的代码生成工具,它允许开发者通过模板语言自动生成代码,如实体类、DAL、BLL等,大大减少了...

    MySQL自增字段为何报错.pdf

    MySQL自增字段报错是指在MySQL数据库中,自增字段出现重复值或无法再添加新记录的错误情况。本文将详细介绍MySQL自增字段报错的原因、解决方案和相关经验总结。 一、MySQL自增字段报错的原因 MySQL自增字段报错的...

    mysql SELECT语句去除某个字段的重复信息

    ### MySQL SELECT 语句去除某个字段的重复信息 在MySQL数据库操作中,经常会遇到需要去除某个字段重复信息的情况。本文将详细介绍如何通过SQL查询来实现这一功能,并对具体语句进行解析,帮助读者理解其中的工作...

Global site tag (gtag.js) - Google Analytics