MySQL - Sélectionnez Concat une ligne entière
-
06-07-2019 - |
Question
Comment sélectionner et concaténer chaque champ à la suite?
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 ce qui précède ne fonctionne pas. Des suggestions?
La solution
Vous aurez la construction de la requête de manière dynamique, c’est-à-dire la liste de toutes les colonnes de concat (...)
de manière explicite. Vous pouvez le faire côté client en exécutant deux requêtes ou dans une procédure stockée à l'aide d'une instruction préparée.
Autres conseils
Vous pouvez le faire en 3 étapes:
1- Liste des champs de construction
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- Copiez la valeur du champ field_list
3- Extraire les données:
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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow