Split comma separated string into rows in mysql

前端 未结 3 1217
囚心锁ツ
囚心锁ツ 2020-12-06 02:38

When I have string list like 1, 2, 3... I\'d like to use this as one column

Ids
1
2
3

Is it possible by sql query?

ex) SELECT

3条回答
  •  旧巷少年郎
    2020-12-06 03:13

    Use a subquery of arbitrary digits to split your string.Instead of vals you can use '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;
    

    See it working

提交回复
热议问题