Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Qual é o oposto de GROUP_CONCAT no MySQL?


Você poderia usar uma consulta como esta:
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

Por favor, veja violino aqui . Observe que esta consulta suportará até 4 cores para cada linha, você deve atualizar sua subconsulta para retornar mais de 4 números (ou você deve usar uma tabela que contenha 10 ou 100 números).