Als u het aantal GROUP_CONCAT-vermeldingen kent (ik bedoel 3 velden worden gecombineerd in het geval van ID =1 en 2 velden worden gecombineerd in het geval van 2 enz.), dan is er een vuile manier.
SELECT ID, SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(NAME), ',', 1), ',', -1) AS CODE1,
If( length(GROUP_CONCAT(NAME)) - length(replace(GROUP_CONCAT(NAME), ',', ''))>1,
SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(NAME), ',', 2), ',', -1) ,NULL)
as CODE2,
SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(NAME), ',', 3), ',', -1) AS CODE3
FROM test
GROUP BY ID;
Uitgang:
ID CODE1 CODE2 CODE3
1 A B C
2 D (null) E
3 F G H
Bij de bovenstaande query wordt ervan uitgegaan dat u GROUP_CONCAT 3 velden gebruikt. Als u dynamisch query's genereert, kunt u het proberen. SQLFIDDLE
BEWERKEN: Opmerking:de CODE kan per RIJ verschillen.(Dit negeren)