Maison > base de données > tutoriel mysql > Comment puis-je inverser le GROUP_CONCAT de MySQL pour séparer les données concaténées ?

Comment puis-je inverser le GROUP_CONCAT de MySQL pour séparer les données concaténées ?

Susan Sarandon
Libérer: 2024-12-15 08:33:18
original
789 Les gens l'ont consulté

How Can I Reverse MySQL's GROUP_CONCAT to Separate Concatenated Data?

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
Copier après la connexion

Comprendre le Détails

  • Fonction SUBSTRING_INDEX : Cette fonction extrait la nième sous-chaîne d'une chaîne, en commençant à la première occurrence d'un délimiteur spécifié. Dans cette requête, il est utilisé plusieurs fois pour isoler chaque sous-chaîne de couleur.
  • Opérateur UNION : L'opérateur UNION combine les résultats de plusieurs instructions SELECT dans une seule table. Ici, il renvoie une série de nombres représentant les positions des sous-chaînes de couleur.
  • chiffre 1 : Cela ajoute 1 à la valeur numérique pour ignorer le délimiteur virgule au début de chaque sous-chaîne de couleur. .
  • Fonction LENGTH : Cette fonction calcule la longueur d'une chaîne. Ici, il est utilisé pour garantir que la valeur numérique se situe dans la plage de longueur de la chaîne de couleurs.

Exemples de données et de sortie

Pour les exemples de données fourni :

+----+----------------------+
| id | colors               |
+----+----------------------+
| 1  | Red,Green,Blue       |
| 2  | Orangered,Periwinkle |
+----+----------------------+
Copier après la connexion

Le résultat de la requête sera :

+----+------------+
| id | colors     |
+----+------------+
| 1  | Red        |
| 1  | Green      |
| 1  | Blue       |
| 2  | Orangered  |
| 2  | Periwinkle |
+----+------------+
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal