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

MySQL SELECT क्लॉज में CONCAT फ़ंक्शन का उपयोग करके टेक्स्ट मानों को जोड़ना

समाधान: 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 अभिव्यक्ति पर काम नहीं करते
  1. - MySQL में GROUP BY HAVING का उपयोग करके दो सटीक मानों वाले रिकॉर्ड चुनना

    MySQL में GROUP BY HAVING के साथ विशिष्ट मानों वाले रिकॉर्ड फ़िल्टर करना GROUP BY ... HAVING क्लॉज का उपयोग समूहों को फ़िल्टर करने के लिए किया जाता है। यह उन मानों को खोजने के लिए उपयोगी है जो विशिष्ट संख्या में बार आते हैं। व्यावहारिक उदाहरण तालिका बनाना CREATE TABLE DemoTable ( Id INT NOT N

  1. - MySQL UNION SELECT और IN क्लॉज एक ही क्वेरी में

    UNION और IN क्लॉज को संयोजित करना पहले टेबल बनाएं: create table DemoTable1 ( StudentId int, StudentName varchar(20) ); Query OK, 0 rows affected (1.24 sec) रिकॉर्ड डालें: insert into DemoTable1 values(210,Adam); Query OK, 1 row affected (0.11 sec) सभी रिकॉर्ड देखें: select * from DemoTable1; आउटप

  1. - MySQL में टेबल में मौजूद न होने वाले मानों को कैसे क्वेरी करें?

    MySQL में किसी टेबल में मौजूद नहीं होने वाले मानों को खोजने के लिए, UNION ALL के साथ WHERE NOT EXISTS या NOT IN का उपयोग करें। यह गैप विश्लेषण या मिसिंग सीक्वेंस खोजने के लिए उपयोगी है। उदाहरण: मिसिंग ऑटो-इन्क्रीमेंट मान खोजना ऑटो-इन्क्रीमेंट टेबल बनाएं: mysql> CREATE TABLE DemoTable1918 (