Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist das Gegenteil von GROUP_CONCAT in MySQL?

Sie könnten eine Abfrage wie diese verwenden:

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

Siehe fiddle hier . Bitte beachten Sie, dass diese Abfrage bis zu 4 Farben für jede Zeile unterstützt, Sie sollten Ihre Unterabfrage aktualisieren, um mehr als 4 Zahlen zurückzugeben (oder Sie sollten eine Tabelle verwenden, die 10 oder 100 Zahlen enthält).