मारियाडीबी में, CONCAT()
एक अंतर्निहित स्ट्रिंग फ़ंक्शन है जो अपने तर्कों पर एक स्ट्रिंग संयोजन करता है। यह उस स्ट्रिंग को लौटाता है जो इसके तर्कों को संयोजित करने के परिणामस्वरूप होती है।
Concatenation दो या दो से अधिक स्ट्रिंग्स को एंड-टू-एंड जोड़ने का ऑपरेशन है।
CONCAT()
एक या एक से अधिक तर्कों को स्वीकार करता है, जो सभी एक ही संयोजित स्ट्रिंग के रूप में लौटाए जाते हैं।
सिंटैक्स
वाक्य रचना इस प्रकार है:
CONCAT( str1, str2, ... )
जहां str1, str2, …
स्ट्रिंग तर्कों का प्रतिनिधित्व करते हैं जिसके लिए संयोजित करना है।
उदाहरण
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT CONCAT('Homer', 'Jay');
परिणाम:
+------------------------+ | CONCAT('Homer', 'Jay') | +------------------------+ | HomerJay | +------------------------+
इस मामले में, हमने दो तारों को जोड़ दिया।
यहाँ यह फिर से है, लेकिन इस बार हम बीच में एक स्थान जोड़ते हैं:
SELECT CONCAT('Homer', ' ', 'Jay');
परिणाम:
+-----------------------------+ | CONCAT('Homer', ' ', 'Jay') | +-----------------------------+ | Homer Jay | +-----------------------------+
इस मामले में, हमने तीन तार जोड़ दिए।
यहाँ यह पाँच के साथ है:
SELECT CONCAT('Homer', ' ', 'Jay', ' ', 'Simpson');
परिणाम:
+---------------------------------------------+ | CONCAT('Homer', ' ', 'Jay', ' ', 'Simpson') | +---------------------------------------------+ | Homer Jay Simpson | +---------------------------------------------+
बाइनरी स्ट्रिंग्स
यदि कोई भी तर्क बाइनरी स्ट्रिंग है, तो परिणाम एक बाइनरी स्ट्रिंग है:
SELECT CONCAT(BINARY 'Homer', 'Jay');
परिणाम:
+-------------------------------+ | CONCAT(BINARY 'Homer', 'Jay') | +-------------------------------+ | HomerJay | +-------------------------------+
हम COLLATION()
. का उपयोग कर सकते हैं परिणाम के मिलान की जांच करने के लिए कार्य करें:
SELECT COLLATION(CONCAT(BINARY 'Homer', 'Jay'));
परिणाम:
+------------------------------------------+ | COLLATION(CONCAT(BINARY 'Homer', 'Jay')) | +------------------------------------------+ | binary | +------------------------------------------+
अगर हम BINARY
को हटा दें ऑपरेटर, हमें एक अलग परिणाम मिलता है:
SELECT COLLATION(CONCAT('Homer', 'Jay'));
परिणाम:
+-----------------------------------+ | COLLATION(CONCAT('Homer', 'Jay')) | +-----------------------------------+ | utf8_general_ci | +-----------------------------------+
इसके अलावा, मारियाडीबी दस्तावेज के अनुसार, संख्यात्मक तर्क उनके समकक्ष बाइनरी स्ट्रिंग फॉर्म में परिवर्तित हो जाते हैं। आप एक स्पष्ट प्रकार की कास्ट (CAST()
. का उपयोग करके) करके इससे बच सकते हैं या CONVERT()
)।
अशक्त तर्क
यदि कोई तर्क null
है , CONCAT()
रिटर्न null
।
हालांकि, एक अपवाद है:जब Oracle मोड में (यानी sql_mode=ORACLE
), कोई भी null
तर्कों को बस नजरअंदाज कर दिया जाता है।
सबसे पहले, आइए देखें कि कैसे CONCAT()
डिफ़ॉल्ट मोड में व्यवहार करता है।
हमारे सत्र को डिफ़ॉल्ट मोड पर सेट करें:
SET SESSION sql_mode=DEFAULT;
अब CONCAT()
चलाएं एक null
. के साथ तर्क:
SELECT CONCAT('Homer', ' ', null, ' ', 'Simpson');
परिणाम:
+--------------------------------------------+ | CONCAT('Homer', ' ', null, ' ', 'Simpson') | +--------------------------------------------+ | NULL | +--------------------------------------------+
जैसा कि अपेक्षित था, परिणाम null
है ।
अब अपने सत्र को Oracle मोड में बदलते हैं:
SET SESSION sql_mode=ORACLE;
और अब पिछले CONCAT()
को चलाते हैं उदाहरण फिर से:
SELECT CONCAT('Homer', ' ', null, ' ', 'Simpson');
परिणाम:
+--------------------------------------------+ | CONCAT('Homer', ' ', null, ' ', 'Simpson') | +--------------------------------------------+ | Homer Simpson | +--------------------------------------------+
इस बार इसने null
. पर ध्यान नहीं दिया तर्क, और सभी शेष गैर-null
. को संयोजित किया तर्क। यदि आप बारीकी से देखें, तो आप देखेंगे कि यह दोनों रिक्त स्थान को जोड़ता है, इसलिए Homer
के बीच में एक दोहरा स्थान है और Simpson
।
null
के लिए -सुरक्षित विकल्प, CONCAT_WS()
का उपयोग करें . वह फ़ंक्शन null
. पर ध्यान नहीं देता है मान, भले ही Oracle मोड में न हों।
वैकल्पिक रूप से, आप IFNULL()
. का उपयोग कर सकते हैं null
. के लिए वैकल्पिक (स्ट्रिंग) मान प्रदान करने के लिए मान (जैसे कि एक खाली स्ट्रिंग)।
एकल तर्क
कॉलिंग CONCAT()
केवल एक तर्क के साथ वह तर्क लौटाता है:
SELECT CONCAT('Homer');
परिणाम:
+-----------------+ | CONCAT('Homer') | +-----------------+ | Homer | +-----------------+
अनुपलब्ध तर्क
कॉलिंग CONCAT()
कोई तर्क पारित किए बिना त्रुटि उत्पन्न होती है:
SELECT CONCAT();
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CONCAT'