在不使用GROUP_CONCAT的情况下按逗号分组列值

时间:2015-06-04 09:13:17

标签: mysql sql

我在MySQL中有以下数据表:

id   name

1    john

1    jack

2    ankit

我需要以下输出:

id   name

1    john,jack

2    ankit

我知道我可以使用GROUP_CONCAT执行此操作但是,我需要上面的输出而不使用GROUP_CONCAT。

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

疯狂的问题的疯狂回答!

SELECT id, MAX(NAME) FROM (
SELECT 
IF(@previd <>  id,  @name := NULL,  @name := @name), 
(IF(@name IS NULL, @name := NAME, @name := CONCAT(@name, ', ', NAME))) NAME, id, @previd := id FROM mytable, 
(SELECT  @name := NULL, @previd  := 0) s
ORDER BY id
) d
GROUP BY id 

答案 1 :(得分:0)

在SQL中

    SELECT 
         id,
         STUFF((SELECT ', ' + CAST(name AS VARCHAR(25)) [text()]
                FROM table1
                WHERE type = a.type
                FOR XML PATH(''), TYPE).value('.','NVARCHAR(MAX)'),1,2,' ') List_Output 
    FROM table1 a
    GROUP BY id