इसके लिए आप GROUP_CONCAT() का इस्तेमाल कर सकते हैं। अलग-अलग रिकॉर्ड लाने के लिए आपको DISTINCT का भी उपयोग करना होगा। आइए पहले एक टेबल बनाएं -
mysql> टेबल बनाएं DemoTable(Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(40), Score int);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.53 सेकंड)
इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें -
mysql> डेमोटेबल (नाम, स्कोर) मान ('क्रिस', 56) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.21 सेकंड) mysql> डेमोटेबल (नाम, स्कोर) मान ('रॉबर्ट', 78) में डालें;क्वेरी ओके, 1 पंक्ति प्रभावित (0.17 सेकंड)mysql> डेमोटेबल (नाम, स्कोर) मान ('क्रिस', 56) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.42 सेकंड) mysql> डेमोटेबल (नाम, स्कोर) में डालें मान ('बॉब', 89); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.12 सेकंड) mysql> डेमोटेबल (नाम, स्कोर) मान ('क्रिस', 56) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.09 सेकंड) mysql> डेमोटेबल (नाम, स्कोर) मान ('क्रिस', 57) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.13 सेकंड)
चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें -
mysql> डेमोटेबल से *चुनें;
यह निम्नलिखित आउटपुट का उत्पादन करेगा। यहां, हमने डुप्लिकेट "स्कोर" मानों के साथ "नाम" रिकॉर्ड दोहराया है -
+-----+--------+----------+| आईडी | नाम | स्कोर |+----+--------+-------+| 1 | क्रिस | 56 || 2 | रॉबर्ट | 78 || 3 | क्रिस | 56 || 4 | बॉब | 89 || 5 | क्रिस | 56 || 6 | क्रिस | 57 |+----+-----------+-------+6 पंक्तियाँ सेट में (0.00 सेकंड)
तालिका से लूप रिकॉर्ड की क्वेरी निम्नलिखित है जो पहले से ही ग्रुप बाय का उपयोग करती है -
mysql> नाम से डेमोटेबल समूह से नाम, group_concat(DISTINCT स्कोर विभाजक ',') चुनें;
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
<पूर्व>+------ --------+| नाम | group_concat(DISTINCT स्कोर सेपरेटर ',') |+--------+---------------------------- --------------+| बॉब | 89 || क्रिस | 56,57 || रॉबर्ट | 78 |+-----------+------------------------------------------ ------+3 पंक्तियाँ सेट में (0.00 सेकंड)