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

Quel est le contraire de GROUP_CONCAT dans MySQL ?

Vous pouvez utiliser une requête comme celle-ci :

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

Veuillez consulter le violon ici . Veuillez noter que cette requête prendra en charge jusqu'à 4 couleurs pour chaque ligne, vous devez mettre à jour votre sous-requête pour renvoyer plus de 4 nombres (ou vous devez utiliser un tableau contenant 10 ou 100 nombres).