sql >> Database teknologi >  >> RDS >> Mysql

Sådan bruger du GROUP_CONCAT i en CONCAT i MySQL

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



  1. MySQL Vis brugere

  2. 25 Microsoft Access-genveje for at spare tid i tabeller i dataarkvisning

  3. Hvad er forskellen mellem en midlertidig tabel og tabelvariabel i SQL Server?

  4. Hvordan kan jeg sende en http-anmodning fra postgresql-funktion eller trigger