2017-09-08 1 views
0

J'essaie de fusionner différentes valeurs anciennes dans une seule colonne. J'ai ce tableauFusionner plusieurs lignes dans une seule colonne

id code langtype desc  duration    
232 1104466 1   IT text  10 
233 1104466 2   EN text  10 
234 1104466 6   other desc 10 
235 1104466 1   Other IT text(different row) 10 
236 1104466 2   Other EN text(same row of previous) 10 

Et je voudrais obtenir un résultat comme celui-ci

id code desc            duration 
232 1104466 “IT” = “IT TEXT”, EN=”EN TEXT”, “ES”=”Other desc” 10 

Il est possibile est mysql?

Merci

+1

'select group_concat (concat (langtype, '=', desc)) à partir de ... group by code' – Rogach

+0

@Rogach Cela semble être une réponse valide. S'il vous plaît postez-le en tant que tel, afin que les autres puissent voir cette question a été répondue (et peut-être élaborer un peu). –

+0

J'ai ajouté quelques détails parce que l'exemple était incomplet – Delayer

Répondre

1

Oui, c'est possible. Quelque chose comme cela devrait obtenir cet effet:

select group_concat(concat(langtype, ' = ', desc)) 
from table 
group by code 

nous avons d'abord former ici une valeur à extraire de chaque ligne (concat(langtype, ' = ', desc)) et concaténer ensuite pour chaque ligne groupée (group_concat). Vous pouvez modifier les délimiteurs ou ajouter des guillemets là où vous en avez besoin - regardez GROUP_CONCAT et CONCAT docs.