Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je grouper un champ en utilisant mysql?

Si vous souhaitez simplement combiner les couleurs et les champs d'image :

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

Pour obtenir toutes les données verticalement dans une colonne tout en permettant le tri par identifiant commun, envisagez :

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 vous souhaitez concaténer plusieurs lignes de données en une seule chaîne, explorez la fonction 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;

Impossible de faire fonctionner le violon avec Char(10) + Char(13) ni concaténation avec + et je n'ai pas MySQL à tester, mais j'espère que cela vous aidera à démarrer.

Ensuite, au lieu d'essayer de le faire dans la requête, il est possible de créer un rapport qui triera et groupera par données v_ebt. Ce serait simple dans Access et je m'attends à ce que les outils de création de rapports MySQL et Crystal Reports puissent le faire.