mysql concat group_concat functions with examples
यह ट्यूटोरियल बताता है कि सिंटैक्स और व्यावहारिक उदाहरणों के साथ MySQL CONCAT का चयन और Group_CONCAT फ़ंक्शन का उपयोग कैसे करें:
CONCAT एक स्ट्रिंग है जो MySQL द्वारा दो या अधिक स्ट्रिंग्स को एक साथ जोड़ने या एक साथ जोड़ने और एकल मान के रूप में वापस आने के लिए समर्थित है। CONCAT नाम क्रिया क्रिया से आता है, जिसका अर्थ है 2 या अधिक संस्थाओं का एक साथ जुड़ना।
इस ट्यूटोरियल में, हम MySQL द्वारा प्रदान किए गए CONCAT फ़ंक्शन के क्वेरी उदाहरणों और अन्य विविधताओं के साथ CONCAT के उपयोग को जानेंगे।
आप क्या सीखेंगे:
MySQL CONCAT फ़ंक्शन
वाक्य - विन्यास:
CONCAT फ़ंक्शन का सिंटैक्स सीधा है। इसमें केवल स्ट्रिंग्स की अल्पविराम से अलग की गई सूची शामिल होनी चाहिए।
CONCAT(string1, string2, ------ stringN)
CONCAT फ़ंक्शन द्वारा अपेक्षित इनपुट और आउटपुट दोनों प्रकार के तार हैं। यहां तक कि अगर यह संख्याओं के साथ आपूर्ति की जाती है, तो अंतिम आउटपुट स्ट्रिंग होगा।
उदाहरण के लिए:
# 1) स्ट्रिंग्स के रूप में इनपुट प्रकारों के साथ।
SELECT CONCAT('string1', 'string2'); //Output string1string2
#दो) नंबर / फ्लोटिंग-पॉइंट नंबर के रूप में इनपुट के साथ।
SELECT CONCAT(1,2); //Output 12 SELECT CONCAT(1.1234,2); //Output 1.12342
चयन स्थिति के साथ CONCAT का उपयोग करना
CONCAT को सबसे ज्यादा व्यापक रूप से SELECT क्वेरी के साथ प्रयोग किया जाता है, जहाँ यह 2 या अधिक कॉलम के डेटा को एक कॉलम में जोड़ सकता है।
एक क्लासिक उदाहरण हो सकता है, मान लें कि हमारे पास एक तालिका है जिसमें प्रथम नाम और अंतिम नाम फ़ील्ड के लिए अलग-अलग कॉलम हैं। इसलिए डेटा प्रदर्शित करते समय, मान लें कि प्रथम नाम और अंतिम नाम के बजाय FullName दिखाने की इच्छा है। हम CONCAT का उपयोग कर सकते हैं और उसके अनुसार चयनित डेटा प्रदर्शित कर सकते हैं।
आइए इसे कार्रवाई में देखें
c ++ फ़ंक्शन में सरणियाँ
सबसे पहले, फ़ील्ड के साथ एक छात्र तालिका बनाएं - आईडी, पहला नाम, अंतिम नाम, आयु, जन्म तिथि और विभाग।
CREATE TABLE student (id INT PRIMARY KEY, fname VARCHAR(100), lname VARCHAR(100), age INT, dob DATE, department VARCHAR(100));
तालिका में कुछ डमी डेटा डालें।
INSERT INTO student values (1,'Darren', 'Still', 32, '1988-05-20', 'ENGINEERING'), (2,'Abhishek', 'Kumar', 28, '1992-05-20', 'ACCOUNTING'), (3,'Amit', 'Singh', 30, '1990-09-20', 'ENGINEERING'), (4,'Steven', 'Johnson', 40, '1980-05-21', 'HUMAN RESOURCES'), (5,'Kartik', 'Shamungam', 20, '2000-05-12', 'TRAINEE');
अब, पहले नाम और अंतिम नाम के संयोजन स्ट्रिंग के रूप में एक पूरा नाम प्राप्त करने के लिए एक चयन क्वेरी लिखें।
SELECT CONCAT(fname,lname) as fullName from student
// आउटपुट
पूरा नाम |
---|
डैरेनस्टिल |
अभिषेककुमार |
अमितसिंह |
स्टीवनजॉनसन |
KartikShamungam |
जैसा कि आप उपरोक्त आउटपुट में देख सकते हैं, पहले नाम और अंतिम नाम के बीच कोई अंतर नहीं है, जो इसे अपठनीय बना रहा है। हम CONCAT फ़ंक्शन को अपडेट करके स्पेसिंग जोड़ सकते हैं ताकि एक अतिरिक्त स्पेस कैरेक्टर को एक स्ट्रिंग के रूप में समेटा जा सके।
SELECT CONCAT(fname, ' ', lname) as fullName from student
यह सुनिश्चित करेगा कि प्रत्येक प्रविष्टि के साथ, आपके बीच में अतिरिक्त रिक्ति होगी।
ग्रुप के साथ CONCAT का उपयोग करना
MySQL GROUP_CONCAT नामक एक अन्य फ़ंक्शन प्रदान करता है।
यह CONCAT के समान है, लेकिन यह इस तरह से भिन्न है कि CONCAT का उपयोग स्तंभों में मानों को संयोजित करने के लिए किया जाता है, जबकि GROUP_CONCAT फ़ंक्शन का उपयोग ज्यादातर पंक्तियों में मानों को बदलने के लिए किया जाता है।
MySQL GROUP_CONCAT सिंटैक्स
SELECT col1, col2, ..., colN GROUP_CONCAT ( (DISTINCT) col_name1 (ORDER BY clause) (SEPARATOR str_val) ) FROM table_name GROUP BY col_name2;
तो, GROUP_CONCAT फ़ंक्शन में, आप देख सकते हैं:
- col_name: यह वह कॉलम है जिसके साथ आप सहमति बनाना चाहते हैं। मूल्यों को दोहराने से बचने के लिए वैकल्पिक DISTINCT क्लाज है।
- द्वारा आदेश: ORDER BY क्लॉज का उपयोग समवर्ती सूची के भीतर आदेश को निर्दिष्ट करने के लिए किया जाता है और वैकल्पिक है।
- सेपरेटर: यह फिर से एक वैकल्पिक क्लॉज है जिसका उपयोग संक्षिप्त मूल्यों के बीच एक कस्टम विभाजक को परिभाषित करने के लिए किया जा सकता है। डिफ़ॉल्ट रूप से, अल्पविराम (,) विभाजक है।
MySQL GROUP_CONCAT उदाहरण
उपरोक्त छात्र तालिका उदाहरण में, मान लें कि हम चाहते हैं संक्षिप्त विभागों की एक सूची का पता लगाएं ।
SELECT GROUP_CONCAT(department) as departments FROM student //Output ENGINEERING,ACCOUNTING,ENGINEERING,HUMAN RESOURCES,TRAINEE
उपरोक्त प्रश्न में,
- आउटपुट में उन सभी विभागों की अल्पविराम से अलग की गई सूची है जो विभाग के कॉलम में उपलब्ध हैं।
- इसके अलावा, दोहराए जाने वाले मूल्य हैं ( उदाहरण के लिए, इंजीनियरिंग) जैसा कि हमने DISTINCT क्लॉज निर्दिष्ट नहीं किया है।
आइए DISTINCT क्लॉज के साथ एक ही उदाहरण देखें:
SELECT GROUP_CONCAT(DISTINCT department) as departments FROM student //Output ACCOUNTING,ENGINEERING,HUMAN RESOURCES,TRAINEE
यह विभाग कॉलम के अलग-अलग मूल्यों को लौटाएगा।
अब आरोही क्रम में छांटे गए विभाग के नाम के लिए D | और ORDER BY क्लॉज के रूप में एक कस्टम विभाजक जोड़ें
SELECT GROUP_CONCAT(DISTINCT department separator ' | ') as departments FROM student //Output ACCOUNTING | ENGINEERING | HUMAN RESOURCES | TRAINEE
तो, उपरोक्त क्वेरी में,
- विभाग के नामों को आरोही क्रम में क्रमबद्ध किया जाता है।
- कोई दोहराए गए मान वापस नहीं किए जाते हैं।
- विभाजक को ‘,’ से। में बदल दिया जाता है ‘
चलो देखते हैं प्रत्येक विभाग में छात्रों के संक्षिप्त मूल्यों को सूचीबद्ध करने के लिए एक और उदाहरण।
यहां हम DISTINCT के रूप में नहीं चाहते हैं क्योंकि एक विभाग में 2 छात्रों का नाम समान हो सकता है।
SELECT department, GROUP_CONCAT(fname ORDER BY fname ASC SEPARATOR ' | ') AS students FROM student GROUP BY department
// आउटपुट
विभाग | छात्रों |
---|---|
लेखांकन | अभिषेक |
अभियांत्रिकी | अमित | डैरेन |
मानव संसाधन | स्टीवन |
ट्रेनी | Kartik |
कॉनकैट और GROUP_CONCAT का संयोजन
उपरोक्त उदाहरण में, मान लें कि हम प्रत्येक विभाग के साथ नाम और अंतिम नाम के अनुमानित मूल्यों को दिखाना चाहते हैं।
इसे प्राप्त करने के लिए, हम CONCAT का उपयोग GROUP_CONCAT कमांड के भीतर कर सकते हैं।
नीचे इस क्रिया को देखते हैं:
SELECT department, GROUP_CONCAT(CONCAT(fname, ' ', lname) order by fname asc SEPARATOR ' | ') as students from student group by department
// आउटपुट
विभाग | छात्रों |
---|---|
लेखांकन | Abhishek Kumar |
अभियांत्रिकी | अमित सिंह | डैरेन स्टिल |
मानव संसाधन | स्टीवन जॉनसन |
ट्रेनी | Kartik Shamungam |
CONCAT के साथ पूर्ण मान को संभालना
CONCAT स्ट्रिंग के तर्कों की उम्मीद करता है और स्ट्रिंग के रूप में आउटपुट देता है।
यदि CONCAT फ़ंक्शन का कोई इनपुट NULL है, तो आउटपुट NULL भी होगा।
SELECT CONCAT('string1','string2', NULL); //Output NULL
NULL मान को संभालने के लिए, आप CONCAT फ़ंक्शन में ifNull स्टेटमेंट का उपयोग कर सकते हैं, जो कॉलम से NULL मान के मामले में एक डिफ़ॉल्ट या रिक्त मान सुनिश्चित करेगा।
मान लीजिए कि हमारे पास उपरोक्त उदाहरण की तरह, CONCAT के 2 स्ट्रिंग्स और 1 पूर्ण मान हैं।
SELECT CONCAT('string1','string2', ifNull(NULL,'hello')); //Output string1string2hello
उपरोक्त क्वेरी में, हमने NULL मान (या एक स्तंभ जो NULL हो सकता है) के आसपास एक ifNull फ़ंक्शन जोड़ा है - यदि NULL मैच सफल होता है, तो यह lo हैलो ’को वापस लौटा देगा, वास्तविक स्तंभ मान।
इसलिए आउटपुट में, आप NULL स्ट्रिंग के लिए देख सकते हैं, 'hello' मुद्रित है।
बार बार पूछे जाने वाले प्रश्न
Q # 1) मैं MySQL में कॉलम कैसे मर्ज कर सकता हूं?
उत्तर: MySQL एक या अधिक तालिकाओं से 2 या अधिक स्तंभों को मिलाने या विलय करने के लिए एक CONCAT फ़ंक्शन प्रदान करता है और आउटपुट में मर्ज किए गए मानों को वापस करता है।
Q # 2) मुझे MySQL में कोनैट विधि का उपयोग कब और कहाँ करना है?
उत्तर: CONCAT विधि का उपयोग आमतौर पर क्वेरी परिणामों के प्रदर्शन के खिलाफ किया जाता है जहां आप 2 या अधिक कॉलम में शामिल होना चाहते हैं और उन्हें एकल कॉलम के रूप में दर्शाते हैं।
उदाहरण के लिए, मान लें कि आपके पास एक तालिका है जिसमें अलग-अलग कॉलम के रूप में पहला नाम और अंतिम नाम है और आप उन्हें पूर्ण नाम से एक एकल इकाई के रूप में प्रदर्शित करना चाहते हैं - तो आप CONCAT फ़ंक्शन का उपयोग पहले नाम और अंतिम नाम कॉलम के मूल्यों को मर्ज करने और उन्हें एक साथ प्रदर्शित करने के लिए कर सकते हैं। एक कॉलम के रूप में।
Q # 3) MySQL GROUP_CONCAT क्या है?
उत्तर: CONCAT के समान, MySQL GROUP_CONCAT का उपयोग किसी तालिका के मानों को बदलने के लिए भी किया जाता है। CONCAT का उपयोग कॉलम के मानों को संयोजित करने के लिए किया जाता है, जबकि GROUP_CONCAT आपको पंक्तियों में मानों को संयोजित करने की क्षमता देता है।
यह ध्यान रखना भी महत्वपूर्ण है कि वांछित परिणाम वापस करने के लिए GROUP_CONCAT और CONCAT दोनों को मिलाया जा सकता है।
GROUP_CONCAT का उपयोग आम तौर पर उन परिदृश्यों में किया जाता है, जहाँ आप पंक्तियों में मान या मान जोड़ना चाहेंगे। उदाहरण के लिए - आपके पास उत्पाद का नाम और श्रेणी के साथ एक उत्पाद तालिका है और आप किसी दिए गए श्रेणी के विरुद्ध सभी उत्पादों को अल्पविराम से अलग कर देना चाहते हैं-मान-तब जब आप GROUP_CONCAT का उपयोग कर सकते हैं।
प्रश्न:
SELECT categoryName, GROUP_CONCAT(itemName) AS itemList FROM products GROUP BY categoryName
Q # 4) मैं CONCAT कमांड का उपयोग करके विभाजक कैसे निर्दिष्ट कर सकता हूं?
उत्तर: CONCAT के साथ, आप विभाजक को अलग स्ट्रिंग के रूप में निर्दिष्ट कर सकते हैं।
उदाहरण के लिए: मान लें कि आप विभाजक के रूप में ’| 'का उपयोग करना चाहते हैं तो CONCAT कमांड में आप इस स्ट्रिंग को उन नामों के बीच निर्दिष्ट कर सकते हैं, जिन्हें आप संक्षिप्त कर रहे हैं।
SELECT CONCAT(fname, '| ', lname) as fullName from student
Q # 5) CONCAT और CONCAT_WS कमांड में क्या अंतर है?
उत्तर: CONCAT_WS MySQL द्वारा प्रदान की गई CONCAT की एक और भिन्नता है, जो एक उपयोगकर्ता को उन कॉलमों के लिए एक विभाजक निर्दिष्ट करने में सक्षम बनाता है, जिन्हें संक्षिप्त किया जा रहा है।
यह उन परिस्थितियों में CONCAT से अधिक पसंद किया जाता है जहां आप अधिक संख्या में स्तंभों को मर्ज करना चाहते हैं और सभी स्तंभों के लिए एक ही विभाजक का उपयोग करना चाहते हैं जो संक्षिप्त हैं।
उदाहरण: मान लीजिए कि फ़ील्ड के साथ एक टेबल छात्र है - fname, lname और पता।
अब हम इन तीनों क्षेत्रों को अलग करना चाहते हैं और ’|
का उपयोग करते हुए concat , हमें विभाजक को अलग-अलग स्ट्रिंग के रूप में निर्दिष्ट करने की आवश्यकता है।
SELECT CONCAT(fname, '|', lname, '|', address) as mergedColumn from student
जबकि के साथ CONCAT_WS आपको बस एक बार विभाजक को निर्दिष्ट करने की आवश्यकता होगी।
SELECT CONCAT_WS('|', fname, lname, address) as mergedColumn from student
निष्कर्ष
इस ट्यूटोरियल में, हमने MySQL CONCAT फ़ंक्शन और इसके उपयोग के बारे में सीखा। यह फ़ंक्शन आम तौर पर बहुत उपयोगी होता है जब विभिन्न स्तंभों के खिलाफ मूल्यों के विलय के लिए क्वेरी परिणाम प्रदर्शित करते हैं।
हमने CONCAT फ़ंक्शन के 2 अलग-अलग रूपों के बारे में भी सीखा - एक CONCAT_WS का उपयोग करके विभाजक के साथ मिल रहा है और दूसरा MySQL GROUP_CONCAT फ़ंक्शन का उपयोग करके पंक्तियों के मानों को बदल रहा है।
अनुशंसित पाठ
- MySQL JOIN ट्यूटोरियल: इनर, आउटर, क्रॉस, लेफ्ट, राइट और सेल्फ
- MySQL यूनिअन - संघ के उदाहरणों के साथ व्यापक ट्यूटोरियल
- MySQL दिनांक प्रारूप और उदाहरणों के साथ टाइमस्टैम्प कार्य
- MySQL तालिका में सम्मिलित करें - स्टेटमेंट सिंटैक्स और उदाहरण डालें
- MySQL अपडेट स्टेटमेंट ट्यूटोरियल - अपडेट सिंटैक्स और उदाहरण
- कोड उदाहरणों के साथ MySQL क्रिएट ट्यूटोरियल देखें
- कोड उदाहरण के साथ सी # कार्य / तरीके ट्यूटोरियल