select id, group_concat(`Name` separator ',') as `ColumnName`
from
(
select
id,
concat(`Name`, ':', group_concat(`Value` separator ',')) as `Name`
from mytbl
group by
id,
`Name`
) tbl
group by id;
Du kan se det implementeret her :Sql Fiddle Demo . Præcis hvad du har brug for.
Opdater Opdeling i to trin. Først får vi en tabel med alle værdier (kommasepareret) mod et unikt[Navn,id]. Så fra den opnåede tabel får vi alle navne og værdier som en enkelt værdi mod hver unik idSe dette forklaret her SQL Fiddle Demo (rul ned, da den har to resultatsæt)
Rediger Der var en fejl ved at læse spørgsmålet, jeg havde kun grupperet efter id. Men to group_contacts er nødvendige hvis (Værdier skal sammenkædes grupperet efter navn og id og derefter over alt efter id). Forrige svar var
select
id,group_concat(concat(`name`,':',`value`) separator ',')
as Result from mytbl group by id
Du kan se det implementeret her :SQL Fiddle Demo