Bây giờ, điều này đơn giản là kỳ lạ, nhưng nó chỉ dành cho MySQL và nó hoạt động!
SELECT TRIM("'" FROM SUBSTRING_INDEX(SUBSTRING_INDEX(
(SELECT TRIM(')' FROM SUBSTR(column_type, 5)) FROM information_schema.columns
WHERE table_name = 'some_table' AND column_name = 'some_column'),
',', @r:[email protected]+1), ',', -1)) AS item
FROM (SELECT @r:=0) deriv1,
(SELECT ID FROM information_schema.COLLATIONS) deriv2
HAVING @r <=
(SELECT LENGTH(column_type) - LENGTH(REPLACE(column_type, ',', ''))
FROM information_schema.columns
WHERE table_name = 'some_table' AND column_name = 'some_column');
Chỉ cần thay thế "some_table" và "some_column" cho bảng / cột cụ thể của bạn và xem điều kỳ diệu!
Bạn sẽ thấy một cách sử dụng kỳ lạ của "information_schema.COLLATIONS" - điều này là do chúng tôi cần một bảng ở đó - bất kỳ bảng nào - chứa ít nhất N hàng , trong đó N là số phần tử trong tập hợp của bạn.