Можете да използвате заявка като тази:
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
Моля, вижте цигулка тук . Моля, обърнете внимание, че тази заявка ще поддържа до 4 цвята за всеки ред, трябва да актуализирате подзаявката си, за да върне повече от 4 числа (или трябва да използвате таблица, която съдържа 10 или 100 числа).