Pregunta

¿Cómo puedo seleccionar y concatenar cada campo en una fila?

Quiero hacer algo similar a esto:

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

... pero obviamente lo anterior no funciona. ¿Alguna sugerencia?

¿Fue útil?

Solución

Tendrá que generar la consulta dinámicamente, es decir, enumerar todas las columnas en concat (...) explícitamente. Puede hacerlo en el lado del cliente ejecutando dos consultas o en un procedimiento almacenado utilizando una declaración preparada.

Otros consejos

Puedes hacerlo en 3 pasos:

1- Crear lista de campos

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 el valor del campo field_list

3- Extraer datos:

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

Si crea un procedimiento almacenado, puede combinar los pasos anteriores

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top