Có thể, nhưng không hẳn là một ý kiến hay.
Ví dụ:bạn có thể tách danh sách được phân tách bằng dấu phẩy bằng cách tạo một dải số và sử dụng dãy số đó với SUBSTRING_INDEX để lấy từng phần tử. Tuy nhiên, phạm vi số cần phải lớn bằng số giá trị được phân tách tối đa.
Sau đó, bạn có thể sử dụng GROUP_CONCAT để nối lại danh sách với nhau theo đúng thứ tự. Lưu ý rằng thứ tự sẽ khác nhau tùy thuộc vào việc bạn đã truyền các giá trị tách ra dưới dạng số / số nguyên hay để chúng dưới dạng chuỗi.
SELECT id, title, GROUP_CONCAT(aNumber ORDER BY aNumber)
FROM
(
SELECT id, title, CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(numbers, ',', tens.acnt * 10 + units.acnt + 1), ',', -1) AS UNSIGNED) AS aNumber
FROM some_table
CROSS JOIN
(SELECT 0 AS acnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) units
CROSS JOIN
(SELECT 0 AS acnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) tens
WHERE LENGTH(numbers) - LENGTH(REPLACE(numbers, ',', '')) >= tens.acnt * 10 + units.acnt
) sub0
GROUP BY id, title;
Trình bày ở đây trên SQL fiddle (nếu SQL fiddle quyết định hoạt động):-
http://www.sqlfiddle.com/#!9/c9703ee/4
Lựa chọn đầu tiên là truyền các giá trị dưới dạng số nguyên để sắp xếp chúng theo số, lựa chọn thứ hai không truyền chúng mà chỉ để chúng dưới dạng chuỗi, do đó thứ tự sắp xếp khác nhau.