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

Dividir string separada por vírgula em linhas no mysql


Use uma subconsulta de dígitos arbitrários para dividir sua string. Em vez de vals, você pode usar '1,2,3'.
SELECT
  DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(vals, ',', n.digit+1), ',', -1) val
FROM
  tt1
  INNER JOIN
  (SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3  UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6) n
  ON LENGTH(REPLACE(vals, ',' , '')) <= LENGTH(vals)-n.digit;

Veja funcionando