这是我正在做的一个示例查询。它产生 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
代替。
这可能吗?我尝试的每件事都会给我一个错误。
最佳答案
要获得 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 |
关于使用 GROUP_CONCAT 和 DISTINCT 的 MySql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15214301/