MySQL Group_Concat由Id区分

时间:2012-09-05 02:50:32

标签: mysql sql distinct group-concat

是否可以通过不同的ID显示group_concat个记录:

GROUP_CONCAT(Column2 BY DISTINCT Column1)

我需要通过column2的不同值从column1获取值。因为第2列中有重复值,所以我不能在column2上使用distinct。

对此有何想法?谢谢!

编辑1

样本表记录:

ID  Value
1   A
1   A
2   B
3   B
4   C
4   C

使用我想要[GROUP_CONCAT]的GROUP_CONCAT(Value BY DISTINCT Id),我会有一个输出:

A, B, B, C

编辑2

以某种方式让group_concat工作:

GROUP_CONCAT(DISTINCT CONCAT(Id, '|', Value))

这将通过不同的id显示连接的值,只需要在某处删除Id。你可以在没有concat功能的情况下完成,但我需要分隔符。这可能不是一个好的答案,但无论如何我都会发布。

3 个答案:

答案 0 :(得分:5)

试试这个,(最简单的方式

SELECT GROUP_CONCAT(VALUE)
FROM
(
    SELECT DISTINCT ID, VALUE
    FROM TableName
) a

SQLFiddle Demo

答案 1 :(得分:2)

GROUP_CONCAT功能支持DISTINCT表达。

SELECT id, GROUP_CONCAT(DISTINCT value) FROM table_name GROUP BY id

答案 2 :(得分:0)

这应该有效:

SELECT GROUP_CONCAT(value) FROM (SELECT id, value FROM table GROUP BY id, value) AS d