Разделить запятую значение из столбца таблицы в строки с помощью mysql?

Я нашел сообщение, в котором есть столбец с тремя значениями, разделенными запятыми. У меня будет более трех значений, разделенных запятыми. Например,

ID CITY_ID -------------- 1 12,18,16,17,35 2 12,16 .... -------------- 

Можно ли разбить строку city_id и сделать ее в строки с помощью запроса mysql, как показано ниже

  ID CITY_ID ------------- 1 12 1 18 1 16 .... 2 16 .... -------------- 

Если да, пожалуйста, дайте совет.

Попробуй это

  SELECT ID,SUBSTRING_INDEX(SUBSTRING_INDEX(t.CITY_ID, ',', nn), ',', -1) value FROM Table1 t CROSS JOIN ( SELECT aN + bN * 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 nn <= 1 + (LENGTH(t.CITY_ID) - LENGTH(REPLACE(t.CITY_ID, ',', ''))) ORDER BY ID,value 

FIDDLE DEMO

Вывод:


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