MySQL: selezionare Concat un'intera riga
-
06-07-2019 - |
Domanda
Come posso selezionare e concaturare tutti i campi di una riga?
Voglio fare qualcosa di simile a questo:
SELECT concat(SELECT GROUP_CONCAT(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name')
as single FROM tbl_name
.. ma ovviamente quanto sopra non funziona. Qualche suggerimento?
Soluzione
Dovrai creare la query in modo dinamico, ovvero elencare tutte le colonne in concat (...)
in modo esplicito. Puoi farlo sul lato client eseguendo due query o in una procedura memorizzata utilizzando un'istruzione preparata.
Altri suggerimenti
Puoi farlo in 3 passaggi:
1- Elenco campi compilati
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- Copia il valore del campo field_list
3- Estrai dati:
SELECT CONCAT( "Paste value copied at previous step" )
FROM TABLE_NAME
Se si crea una procedura memorizzata, è possibile combinare i passaggi precedenti
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow