`
wuhaidong
  • 浏览: 357862 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

关于MySQL 去掉重复数据问题

阅读更多

遇到很棘手问题,关于MySQL去除重复数据:

 

1> distinct 这个关键字来过滤掉多余的重复记录只能保留一条,但往往只用 它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct 只有用二重循环查询来解决,而这样对于一个数据量非常大的来说,无疑是会直接影响到效率的。

 

下面先来看看例子:

table 表

字段1     字段2

---------------------------------

id          name

---------------------------------

1           a

2           b

3           c

4           c

5           b

---------------------------------

库结构大概这样,这只是一个简单的例子,实际情况会复杂得多。

 

比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录。

 

select distinct name from table

得到的结果是:

---------------------------------

name

a

b

c

---------------------------------

 

好像达到效果了,可是,我想要得到的是id值呢?改一下查询语句吧:

 

select distinct name, id from table

得到的结果是:

---------------------------------

id   name

---------------------------------

1    a

2    b

3    c

4    c

5    b

---------------------------------

distinct 怎么没起作用?作用得起了的,不过它同时作用了两个字段,也就是必须得id与name 都相同的才会被排除。

 

我们再改改查询语句:

 

select id, distinct name from table

 

很遗憾,除了错误信息你什么也得不到,distinct必须放在开头。难到不能把distinct放到where条件里?能,照样报错。

---------------------------------

 

下面方法可行:

 

select  *, count(distinct name) from table group by name

 

结果:

 

id   name   count(distinct name)

---------------------------------

1    a         1

2    b         1

3    c         1

---------------------------------

 

最后一项是多余的,不用管就行了,目的达到。

 

 

分享到:
评论

相关推荐

    mysql优化小技巧之去除重复项实现方法分析【百万级数据】

    本文实例讲述了mysql优化小技巧之去除重复项实现方法。分享给大家供大家参考,具体如下: 说到这个去重,脑仁不禁得一疼,尤其是出具量比较大的时候。毕竟咱不是专业的DB,所以嘞,只能自己弄一下适合自己去重方法了...

    MySQL 去除重复数据实例详解

    MySQL 去除重复数据实例详解 有两个意义上的重复记录,一是完全重复的记录,也即所有字段均都重复,二是部分字段重复的记录。对于第一种重复,比较容易解决,只需在查询语句中使用distinct关键字去重,几乎所有...

    mysql查找删除表中重复数据方法总结

    在高并发环境下,可以考虑使用MySQL的锁机制,例如 `LOCK TABLES` 语句,来防止在删除过程中发生并发冲突导致的重复数据问题。 总的来说,处理MySQL表中的重复数据需要对SQL查询有深入的理解,包括分组、聚合函数、...

    很全面的MySQL处理重复数据代码

    在MySQL数据库管理中,处理重复数据是一个常见的任务,特别是在数据清洗和数据整理的过程中。本篇文章主要探讨了如何预防和处理MySQL数据表中的重复数据。 首先,防止数据表出现重复数据的最常见方法是在创建表时...

    用Distinct在MySQL中查询多条不重复记录值,绝对的物有所值

    这是`DISTINCT`最基本的用法,适用于快速去除重复记录,得到唯一数据。 然而,当我们需要同时返回`id`和`name`时,事情变得稍微复杂。如果直接使用: ```sql SELECT DISTINCT name, id FROM table; ``` 你可能会...

    MySQL 处理重复数据

    在MySQL中,处理重复数据是数据库管理的重要环节。在某些场景下,确保数据的唯一性是必要的,这可以通过设定主键或唯一索引来实现。主键(PRIMARY KEY)是用于标识表中每条记录的唯一标识,而唯一索引(UNIQUE)则...

    MySQL中删除重复数据的简单方法

    在MySQL数据库管理中,删除重复数据是一个常见的需求,特别是在数据清洗和数据分析时。传统的删除重复数据的方法,如使用`NOT IN`或`DISTINCT`,可能会导致效率低下,特别是当处理大量数据时。本文将介绍一种高效的...

    mysql中如何去除小数点后面多余的0

    select cast(2.12000 as decimal(9,... 您可能感兴趣的文章:Mysql中存储UUID去除横线的方法解析mysql中:单表distinct、多表group by查询去除重复记录mysql SELECT语句去除某个字段的重复信息MySQL 去除重复数据实例详解

    爬取数据并存储到mysql

    - 数据去重:在插入数据前,检查是否已存在相同的记录,避免重复插入。 总结来说,从爬取数据到存储到MySQL数据库,涉及Python爬虫技术、HTML解析、数据库操作以及网络请求等多个方面。掌握这些技能,能让我们有效...

    MySQL 消除重复行的一些方法

    下面将详细介绍几种在MySQL中去除重复行的方法。 1. **表替换法** 这种方法适用于任何类型的表,不论其存储引擎。首先创建一个新的临时表,结构与原表相同,并插入原表中不重复的记录。然后删除原表,最后将临时表...

    解析mysql中:单表distinct、多表group by查询去除重复记录

    `GROUP_CONCAT()`在更高版本的MySQL中可以用来组合字段值,同时去除重复,例如`SELECT field1, GROUP_CONCAT(DISTINCT field2) FROM table GROUP BY field1`。 此外,`GROUP BY`的一个实际例子是在内容管理系统中,...

    MySQL初级教程.pdf,适合MySQL初学者

    同时,DISTINCT关键字可以去除查询结果中的重复项。 在处理字段连接时,MySQL提供了CONCAT()函数,用于将多个字段或字符串合并。如果某个字段值可能为空,可以使用IFNULL()函数将其替换为指定值。例如,IFNULL(销售...

    关于MYSQL的练习习题集合

    本资源摘要信息是关于MYSQL的练习习题集合,旨在帮助学习者更好地练习SQL的基础性知识,并快速入门。下面是从给定的文件信息中生成的相关知识点: 一、数据库设计原则 1.简单字段中的复合字段:解决方法是向上打通...

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

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

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

    标题中的问题涉及到了如何从包含多条记录的数据表中提取唯一且不重复的特定字段值,例如在这个例子中是`title`字段。描述中提到的情况是一个名为`book`的表,它包含了`id`、`author`和`title`三个字段,并且有5条...

    mysql面试专题.pdf

    UNION操作在合并结果集时会去除重复记录并进行排序,而UNION ALL则不会,因此使用UNION ALL可以提高性能,前提是合并的结果集没有重复数据且不需要排序。 MySQL中常用的索引类型包括普通索引、唯一索引、主键索引和...

    解析mysql不重复字段值求和

    总的来说,处理MySQL中不重复字段值的求和问题,可以采用`GROUP BY`配合聚合函数的方法,如`COUNT(DISTINCT)`。在实际应用中,需要根据数据库版本和具体需求选择合适的解决方案。理解并灵活运用这些SQL语句,能帮助...

Global site tag (gtag.js) - Google Analytics