Bạn có thể sử dụng một truy vấn như sau:
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
Vui lòng xem fiddle tại đây . Xin lưu ý rằng truy vấn này sẽ hỗ trợ tối đa 4 màu cho mỗi hàng, bạn nên cập nhật truy vấn con của mình để trả về nhiều hơn 4 số (hoặc bạn nên sử dụng bảng có chứa 10 hoặc 100 số).