यदि आप एक संख्या तालिका बना सकते हैं, जिसमें विभाजित करने के लिए 1 से लेकर अधिकतम फ़ील्ड तक की संख्याएँ हों, तो आप इस तरह के समाधान का उपयोग कर सकते हैं:
select
tablename.id,
SUBSTRING_INDEX(SUBSTRING_INDEX(tablename.name, ',', numbers.n), ',', -1) name
from
numbers inner join tablename
on CHAR_LENGTH(tablename.name)
-CHAR_LENGTH(REPLACE(tablename.name, ',', ''))>=numbers.n-1
order by
id, n
कृपया फिडल देखें यहां ।
यदि आप कोई तालिका नहीं बना सकते हैं, तो इसका समाधान यह हो सकता है:
select
tablename.id,
SUBSTRING_INDEX(SUBSTRING_INDEX(tablename.name, ',', numbers.n), ',', -1) name
from
(select 1 n union all
select 2 union all select 3 union all
select 4 union all select 5) numbers INNER JOIN tablename
on CHAR_LENGTH(tablename.name)
-CHAR_LENGTH(REPLACE(tablename.name, ',', ''))>=numbers.n-1
order by
id, n
एक उदाहरण फिडेल है यहां ।