使用GROUP_CONCAT和DISTINCT的MySql查询

时间:2013-03-05 01:33:52

标签: mysql sql group-by group-concat

以下是我正在进行的示例查询。它产生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

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

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

1 个答案:

答案 0 :(得分:1)

要获取不同的组合Id, Value,您需要GROUP BY value并在子查询中选择MIN(ID),然后选择GROUP_CONCAT in外部查询的方式与您的方式相同。

这样的事情:

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 |