रिकॉर्ड संयोजित करने के लिए CONCAT() और NULL मानों की जांच के लिए IFNULL() का उपयोग करें।
आइए पहले एक टेबल बनाते हैं:
mysql> create table DemoTable802 ( FirstName varchar(100), LastName varchar(100) ); Query OK, 0 rows affected (1.01 sec)
इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:
mysql> insert into DemoTable802 values('Adam','Smith');
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable802 values('Carol',NULL);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable802 values(NULL,'Taylor');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable802 values(NULL,NULL);
Query OK, 1 row affected (0.21 sec)
सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:
mysql> select * from DemoTable802;
यह निम्नलिखिक आउटपुट देगा:
+-----------+----------+ | FirstName | LastName | +-----------+----------+ | Adam | Smith | | Carol | NULL | | NULL | Taylor | | NULL | NULL | +-----------+----------+ 4 rows in set (0.00 sec)
NULL मानों को अनदेखा करके रिकॉर्ड संयोजित करने की क्वेरी
mysql> select concat(IFNULL(FirstName,''), ' ', IFNULL(LastName,'')) AS FULL_NAME from DemoTable802;
यह निम्नलिखिक आउटपुट देगा:
+------------+ | FULL_NAME | +------------+ | Adam Smith | | Carol | | Taylor | | | +------------+ 4 rows in set (0.00 sec)
व्याख्या
IFNULL(col, '')NULL को खाली स्ट्रिंग में बदलता हैCONCAT()स्ट्रिंग्स को जोड़ता है; यदि कोई तर्क NULL है तो परिणाम NULL होता है- इसलिए
IFNULLआवश्यक है ताकि NULL पूरे परिणाम को NULL न बना दे - पंक्ति 2: 'Carol' + ' ' + '' = 'Carol '
- पंक्ति 3: '' + ' ' + 'Taylor' = ' Taylor'
- पंक्ति 4: '' + ' ' + '' = ' '
बेहतर: COALESCE या CONCAT_WS
SELECT CONCAT_WS(' ', FirstName, LastName) AS FULL_NAME FROM DemoTable802;
CONCAT_WS (With Separator) स्वचालित रूप से NULL को छोड़ देता है और विभाजक नहीं जोड़ता।