sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo puedo agrupar campos usando mysql?

Si solo desea combinar colores y campos de imagen:

SELECT v_ebt, CONCAT("color: ", colors, "; image: ", image) AS Data FROM table;

Para obtener todos los datos verticalmente en una columna y aún permitir ordenar por identificador común, considere:

SELECT 1 AS Srt, v_ebt AS Grp, v_ebt AS Data FROM docs
UNION SELECT 2, v_ebt, CONCAT("color: ", colors, ", image: ", image) 
     FROM docs
ORDER BY Grp, Srt;

Si desea concatenar varias filas de datos en una sola cadena, explore la función GROUP_CONCAT.

SELECT v_ebt, GROUP_CONCAT(CONCAT("color: ", colors, ", image: ", image, Char(10)+Char(13))
                           ORDER BY CONCAT("color: ", colors, ", image: ", image, Char(10)+Char(13))) AS list
FROM table
GROUP BY v_ebt;

No puedo hacer que fiddle funcione con Char(10) + Char(13) ni la concatenación con + y no tengo MySQL para probar, pero espero que esto lo ayude a comenzar.

Luego, en lugar de intentar hacer esto dentro de la consulta, existe la opción de crear un informe que ordenará y agrupará por datos v_ebt. Esto sería simple en Access y espero que las herramientas de generación de informes de MySQL y Crystal Reports puedan hacerlo.