`
zhengdl126
  • 浏览: 2542524 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

mysql的distinct用法

阅读更多

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

下面先来看看例子:

   table
   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

 

试了半天,也不行,最后在mysql手册里找到一个用法,

用group_concat(distinct name)配合group by name实现了我所需要的功能 5.0才支持的.

 

突然灵机一闪,既然可以使用group_concat函数,那其它函数能行吗?

赶紧用count函数一试,成功, 现在将完整语句放出:

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

结果:

   id name count(distinct name)
   1 a 1
   2 b 1
   3 c 1

再顺便说一句,group by 必须放在 order by 和 limit之前, 不然会报错。。。OK了

分享到:
评论

相关推荐

    mysql中distinct用法【SQL中distinct的用法】.docx

    MySQL 中 DISTINCT 用法详解 MySQL 中的 DISTINCT 关键字用于返回唯一不同的值,避免重复值的出现。当我们在查询表中数据时,可能会遇到重复值的情况,这时使用 DISTINCT 关键字可以帮助我们返回唯一的值。 ...

    分析MySQL中优化distinct的技巧

    MySQL的执行计划显示,原始SQL语句`SELECT COUNT(DISTINCT nick) FROM user_access`使用了`ind_user_access`索引进行全扫描,这意味着数据库需要遍历整个索引来获取不重复的`nick`值。这显然是低效的,因为即使使用...

    【DISTINCT】优化之MySQL官方文档翻译

    当`DISTINCT`与`ORDER BY`一起使用时,MySQL通常需要创建一个临时表来存储中间结果。这个过程可能会消耗大量的内存资源,并且可能导致查询执行时间变长。为了提高效率,MySQL会尽可能地避免创建临时表,特别是在以下...

    MySQL DISTINCT 的基本实现原理详解

    在某些情况下,MySQL可以使用松散索引扫描来执行DISTINCT操作。例如,当查询只包含DISTINCT关键字和一个被索引的列时,MySQL会遍历索引,对每个不同值形成一个组,然后返回每个组的第一个记录。在EXPLAIN计划中,`...

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

    今天,我们将深入探讨如何使用`DISTINCT`关键字在MySQL中查询多条不重复记录值,这不仅是一种实用技能,也是提升数据处理效率的关键所在。 ### `DISTINCT`关键字详解 `DISTINCT`关键字在SQL查询中扮演着一个至关...

    vc 小技巧 mysql distinct 语句

    同时,优化`DISTINCT`查询性能也是数据库设计和管理的重要部分,可能涉及索引策略、查询重构等方法。 总结来说,`DISTINCT`是MySQL中用于获取唯一数据的关键字,而VC开发者可以通过MySQL Connector/C++库与MySQL...

    小度写范文【SQL中distinct的用法】mysql中distinct用法模板.pdf

    在MySQL中,`DISTINCT`的使用方式非常灵活,可以从单个列到多个列进行操作,也可以与聚合函数如`COUNT()`结合使用。以下是关于`DISTINCT`在SQL中的具体用法和一些注意事项。 1. **单列去重** 当我们只对单一列应用...

    小度写范文【SQL中distinct的用法】mysql中distinct用法模板.docx

    在MySQL中,`DISTINCT`的使用方式和功能与其他SQL数据库系统(如SQL Server、Access等)大体相同,但有一些细微的差别。以下是对`DISTINCT`用法的详细解释: 1. **单列去重**: 当我们需要从一个表中获取唯一的某...

    MySQL中distinct和count(*)的使用方法比较

    本文将详细探讨这两种方法的使用方法及其差异。 首先,`DISTINCT` 关键字用于从查询结果中去除重复的记录。在实际应用中,`DISTINCT` 主要有以下几种用法: 1. 计算不重复记录数量:`SELECT COUNT(DISTINCT id) ...

    MySQL关键字Distinct的详细介绍

    MySQL中的`DISTINCT`关键字是用于消除查询结果中的重复行,从而返回唯一不同的值。它在数据查询中扮演着至关重要的角色,特别是在处理可能存在重复记录的数据表时。下面将详细介绍`DISTINCT`关键字的用法及其注意...

    mysql中去重 distinct用法

    总之,`DISTINCT`是MySQL中非常实用的功能,用于处理数据去重,但应谨慎使用,尤其是在大型数据集上,以避免性能问题。根据实际需求,结合`GROUP BY`和聚合函数,可以实现更复杂的去重和统计操作。

    MySQL中使用去重distinct方法的示例详解

    用法注意: 1.distinct【查询字段】,必须放在要查询字段的开头,即放在第一个参数; 2.只能在SELECT 语句中使用,不能在 INSERT, DELETE, UPDATE 中使用; 3.DISTINCT 表示对后面的所有参数的拼接取 不重复的记录,...

    MySQL中Distinct和Group By语句的基本使用教程

    本文将详细介绍这两个语句的使用方法。 首先,`DISTINCT`关键字是用来去除查询结果中重复记录的。当你需要确保返回的每个记录都是唯一的,例如在查询用户名时,可以使用`DISTINCT`。基本语法是`SELECT DISTINCT...

    使用distinct在mysql中查询多条不重复记录值的解决办法

    使用distinct在mysql中查询多条不重复记录值的解决办法 在 MySQL 中,使用 distinct 关键字可以过滤掉重复记录,只保留一条。但是,这个关键字只能返回它的目标字段,而无法返回其它字段。这使得在查询多条不重复...

    MySQL中distinct与group by语句的一些比较及用法讲解

    在MySQL数据库中,`DISTINCT` 和 `GROUP BY` 是两种用于数据去重和分组统计的SQL语句,它们虽然都可以帮助我们处理重复数据,但有着不同的应用场景和执行机制。 1. `DISTINCT` 关键字: - `DISTINCT` 主要用于去除...

    MySQL中distinct语句去查询重复记录及相关的性能讨论

    总之,`DISTINCT`是MySQL中处理重复数据的关键工具,但在使用时要注意其性能影响和正确性。优化查询、合理利用索引以及谨慎选择`DISTINCT`的应用位置,是提高查询效率和确保数据准确性的重要策略。在实际工作中,应...

Global site tag (gtag.js) - Google Analytics