【问题标题】:MySql query using GROUP_CONCAT and DISTINCT使用 GROUP_CONCAT 和 DISTINCT 的 MySql 查询
【发布时间】:2013-03-05 01:33:52
【问题描述】:

这是我正在执行的示例查询。它产生1,A,1,A,3,B,2,B,4,C,4,C

SELECT GROUP_CONCAT(CONCAT(ID, ','), Value ORDER BY Value) FROM TableName

这是SQL Fiddle Demo

我想在Value 列上调用DISTINCT,以便它输出1,A,2,B,4,C

这可能吗?我尝试的一切都会给我一个错误。

【问题讨论】:

    标签: mysql sql group-by group-concat


    【解决方案1】:

    要获得 distinct 组合 Id, Value,您需要 GROUP BY value 并在子查询中选择 MIN(ID),然后在外部查询中选择 GROUP_CONCAT,方法与您相同.

    类似这样的:

    SELECT GROUP_CONCAT(CONCAT(ID, ','), Value ORDER BY Value)
    FROM
    (
      SELECT value, MIN(ID) AS ID
      FROM tablename
      GROUP BY value
    ) AS t;
    

    Updated SQL Fiddle Demo

    这会给你:

    |      RESULT |
    ---------------
    | 1,A,2,B,4,C |
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-24
      • 2011-03-06
      • 2021-01-30
      • 2014-03-09
      • 2014-01-14
      • 1970-01-01
      • 2013-09-21
      相关资源
      最近更新 更多