Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

जांचें कि क्या स्तंभ मान एकाधिक रिकॉर्ड्स में समान हैं और इन रिकॉर्ड्स को MySQL में एक विशेष वर्ण से अलग करके एक पंक्ति में सेट करें

<घंटा/>

इसके लिए आप DISTINCT के साथ GROUP_CONCAT() का इस्तेमाल कर सकते हैं। आइए पहले एक टेबल बनाएं -

mysql> टेबल बनाएं DemoTable(Id int, सब्जेक्ट वर्कर(40));क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.56 सेकंड)

इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें -

mysql> डेमोटेबल मानों में डालें (100, 'MySQL'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.19 सेकंड) mysql> डेमोटेबल मानों में डालें (100, 'MongoDB'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.20 सेकंड) )mysql> डेमोटेबल वैल्यू (100, 'जावा') में डालें; क्वेरी ओके, 1 पंक्ति प्रभावित (0.14 सेकंड) mysql> डेमोटेबल वैल्यू में डालें (100, 'मोंगोडीबी'); क्वेरी ओके, 1 पंक्ति प्रभावित (0.11 सेकंड) mysql> डेमोटेबल मानों में डालें (101, 'MySQL'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.16 सेकंड) mysql> डेमोटेबल मानों में डालें (101, 'MySQL'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.10 सेकंड) 

चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें -

mysql> डेमोटेबल से *चुनें;

यह निम्नलिखित आउटपुट उत्पन्न करेगा -

<पूर्व>+----------+-----------+| आईडी | विषय |+------+---------+| 100 | मायएसक्यूएल || 100 | मोंगोडीबी || 100 | जावा || 100 | मोंगोडीबी || 101 | मायएसक्यूएल || 101 | MySQL |+------+-----------+6 पंक्तियों में सेट (0.00 सेकंड)

यह जांचने के लिए क्वेरी निम्नलिखित है कि क्या कॉलम मान एकाधिक रिकॉर्ड्स में समान हैं और इन रिकॉर्ड्स को एक विशेष वर्ण द्वारा अलग की गई एक पंक्ति में सेट करें। यहाँ विभाजक हाइफ़न है -

mysql> Id,group_concat(अलग सब्जेक्ट सेपरेटर '-') को सब्जेक्ट के रूप में DemoTable ग्रुप से Id चुनें;

यह निम्नलिखित आउटपुट उत्पन्न करेगा -

<पूर्व>+----------+----------------------+| आईडी | विषय |+------+---------------------+| 100 | जावा-मोंगोडीबी-माईएसक्यूएल || 101 | MySQL |+------+----------------------+2 पंक्तियों में सेट (0.04 सेकंड)
  1. कॉलम मानों को MySQL में अलग टेक्स्ट के साथ संयोजित करें और एक कॉलम में प्रदर्शित करें

    आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.93 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल मानों में डालें (103, रॉबर्ट); क्वेरी ओके, 1 पंक्ति प्रभावित (0.16 सेकंड) चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें - डेमोटेबल से *चुनें; य

  1. MySQL में अल्पविराम द्वारा अलग किए गए सभी कॉलम मानों को एक पंक्ति में प्रदर्शित करें?

    इसके लिए GROUP_CONCAT() और CONCAT() का इस्तेमाल करें। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1807 (Id int);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.00 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1807 मानों में डालें ( 103);क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.00 सेकंड)

  1. MySQL क्वेरी एक विशेष वर्ण द्वारा अलग की गई एकल पंक्ति में समान संगत आईडी वाले रिकॉर्ड को संयोजित करने के लिए

    इसके लिए आप GROUP_CONCAT() के साथ CONCAT_WS() का इस्तेमाल कर सकते हैं। आइए पहले एक . बनाएं );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.51 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable2016 मान (1,सैम) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.14 सेकंड) चयन कथन का उपयोग