यदि आप GROUP_CONCAT प्रविष्टियों की संख्या जानते हैं (मेरा मतलब है कि आईडी =1 के मामले में 3 फ़ील्ड संयुक्त हैं और 2 फ़ील्ड 2 आदि के मामले में संयुक्त हैं), तो एक गंदा तरीका है।
SELECT ID, SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(NAME), ',', 1), ',', -1) AS CODE1,
If( length(GROUP_CONCAT(NAME)) - length(replace(GROUP_CONCAT(NAME), ',', ''))>1,
SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(NAME), ',', 2), ',', -1) ,NULL)
as CODE2,
SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(NAME), ',', 3), ',', -1) AS CODE3
FROM test
GROUP BY ID;
आउटपुट:
ID CODE1 CODE2 CODE3
1 A B C
2 D (null) E
3 F G H
उपरोक्त क्वेरी मानती है कि आप GROUP_CONCAT-ing 3 फ़ील्ड हैं। यदि आप गतिशील रूप से क्वेरी उत्पन्न कर रहे हैं तो आप कोशिश कर सकते हैं। SQLFIDDLE
संपादित करें: नोट:प्रत्येक पंक्ति के लिए कोड भिन्न हो सकता है।(इसे अनदेखा करना)