2009-10-25 10 views
2

Comment puis-je sélectionner et concaténer chaque champ d'affilée?MySQL - Sélectionnez Concaturer une ligne entière

Je veux faire quelque chose de similaire à ceci:

SELECT concat(SELECT GROUP_CONCAT(COLUMN_NAME) 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE table_name = 'tbl_name') 
as single FROM tbl_name 

..mais évidemment le précède ne fonctionne pas. Aucune suggestion?

+1

Notez que vous devrez sélectionner 'where table_name = 'nom_table' et table_schema = 'nom_schéma'. Il peut y avoir plusieurs tables avec le même nom mais dans des schémas différents. –

Répondre

0

Vous aurez la génération de la requête dynamiquement, c'est-à-dire la liste de toutes les colonnes dans concat(...) explicitement. Vous pouvez le faire du côté client en exécutant deux requêtes ou dans une procédure stockée en utilisant une instruction préparée.

0

Vous pouvez le faire en 3 étapes:

1- champ Créer la liste

SELECT group_concat(column_name) as field_list 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE table_name = 'TABLE_NAME' 
GROUP BY table_name 
LIMIT 0 , 1 

2- Copier la valeur du champ field_list

3- données Extrait:

SELECT CONCAT("Paste value copied at previous step") 
FROM TABLE_NAME 

Si vous créez une procédure stockée, vous pouvez combiner les étapes ci-dessus