Mysql
 sql >> Database >  >> RDS >> Mysql

Qual è il contrario di GROUP_CONCAT in MySQL?

Potresti usare una query come questa:

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

Si prega di vedere violino qui . Tieni presente che questa query supporterà fino a 4 colori per ogni riga, dovresti aggiornare la tua sottoquery per restituire più di 4 numeri (oppure dovresti usare una tabella che contiene 10 o 100 numeri).