समाधान: CONCAT() फ़ंक्शन
SELECT क्वेरी में एकाधिक टेक्स्ट कॉलम या स्थिर स्ट्रिंग को जोड़ने के लिए CONCAT() फ़ंक्शन का उपयोग करें।
सिंटैक्स
SELECT CONCAT(column1, 'static text', column2, ...) AS alias FROM yourTableName;
व्यावहारिक उदाहरण
टेबल बनाना और डेटा डालना
mysql> CREATE TABLE ConcatenatingDemo (
-> UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName VARCHAR(20),
-> UserCountryName VARCHAR(20)
-> );
mysql> INSERT INTO ConcatenatingDemo(UserName, UserCountryName) VALUES
-> ('John', 'US'), ('Carol', 'UK'), ('Bob', 'AUS'), ('David', 'US');
CONCAT के साथ क्वेरी
mysql> SELECT CONCAT(UserName, ' belongs to ( ', UserCountryName, ' )') AS AddingTextDemo
-> FROM ConcatenatingDemo;
परिणाम
| AddingTextDemo |
|---|
| John belongs to ( US ) |
| Carol belongs to ( UK ) |
| Bob belongs to ( AUS ) |
| David belongs to ( US ) |
CONCAT वेरिएंट और विकल्प
CONCAT_WS (सेपरेटर के साथ)
SELECT CONCAT_WS(' ', UserName, 'from', UserCountryName) AS result
FROM ConcatenatingDemo;
आउटपुट: "John from US", "Carol from UK", ...
लाभ: NULL मानों को स्वचालित रूप से छोड़ देता है
NULL सुरक्षा
-- CONCAT: कोई भी NULL होने पर परिणाम NULL SELECT CONCAT(NULL, 'test'); -- NULL -- COALESCE के साथ SELECT CONCAT(COALESCE(UserName, ''), ' from ', COALESCE(UserCountryName, '')) FROM ConcatenatingDemo;
उन्नत संयोजन
फॉर्मेटिंग के साथ
SELECT CONCAT(
'User: ', UPPER(UserName),
', Country: ', UPPER(UserCountryName),
' [ID: ', UserId, ']'
) AS formatted
FROM ConcatenatingDemo;
शर्तीय टेक्स्ट
SELECT CONCAT(
UserName,
IF(UserCountryName = 'US', ' (Domestic)', ' (International)')
) AS status
FROM ConcatenatingDemo;
प्रदर्शन नोट
- CONCAT CPU-बाउंड ऑपरेशन है - बड़े परिणाम सेट पर ध्यान दें
- आवश्यकता न होने पर क्वेरी में संयोजन न करें - एप्लिकेशन स्तर पर करें
- इंडेक्स CONCAT अभिव्यक्ति पर काम नहीं करते