Inverser les effets de GROUP_CONCAT : diviser les données concaténées
Dans MySQL, la fonction GROUP_CONCAT combine plusieurs valeurs d'une colonne spécifique en une seule, chaîne séparée par des virgules. Cependant, il peut y avoir des cas où vous désirez l'effet inverse, où une chaîne concaténée est décomposée en ses composants individuels.
La requête pour réaliser le fractionnement
Pour ce faire, utilisez la requête suivante :
SELECT id, SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', n.digit+1), ',', -1) color FROM colors INNER JOIN (SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) n ON LENGTH(REPLACE(colors, ',' , '')) <= LENGTH(colors)-n.digit ORDER BY id, n.digit
Comprendre le Détails
Exemples de données et de sortie
Pour les exemples de données fourni :
+----+----------------------+ | id | colors | +----+----------------------+ | 1 | Red,Green,Blue | | 2 | Orangered,Periwinkle | +----+----------------------+
Le résultat de la requête sera :
+----+------------+ | id | colors | +----+------------+ | 1 | Red | | 1 | Green | | 1 | Blue | | 2 | Orangered | | 2 | Periwinkle | +----+------------+
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!