Split comma separated value from table column into rows using mysql?

前端 未结 1 1280
轮回少年
轮回少年 2020-12-11 11:46

I found the post which has the column with 3 values seperated by commas. I will have more than 3 values seperated by commas . For example,

ID    CITY_ID
----         


        
1条回答
  •  囚心锁ツ
    2020-12-11 12:40

    Try this

      SELECT ID,SUBSTRING_INDEX(SUBSTRING_INDEX(t.CITY_ID, ',', n.n), ',', -1) value
      FROM Table1 t CROSS JOIN 
      (
       SELECT a.N + b.N * 10 + 1 n
         FROM 
        (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
       ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
        ORDER BY n 
       ) n
     WHERE n.n <= 1 + (LENGTH(t.CITY_ID) - LENGTH(REPLACE(t.CITY_ID, ',', '')))
     ORDER BY ID,value
    

    FIDDLE DEMO

    Output:


    ID  VALUE
    1   12
    1   16
    1   17
    1   18
    1   35
    2   12
    2   16
    

    0 讨论(0)
提交回复
热议问题