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

MySQL में GROUP_CONCAT() से लास्ट नेम जोड़ना और शर्त लगाना

GROUP_CONCAT() फंक्शन

GROUP_CONCAT() एक एग्रीगेट फंक्शन है जो ग्रुप के सभी मानों को एक स्ट्रिंग में जोड़ देता है, डिफ़ॉल्ट रूप से कॉमा (,) से अलग करके।

सिंटैक्स

GROUP_CONCAT([DISTINCT] expr [ORDER BY ...] [SEPARATOR str])

उदाहरण: टेबल बनाना और डेटा इन्सर्ट करना

mysql> CREATE TABLE DemoTable813(
    UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserFirstName VARCHAR(100),
    UserLastName VARCHAR(100)
);
Query OK, 0 rows affected (0.49 sec)

रिकॉर्ड्स इन्सर्ट करना

mysql> INSERT INTO DemoTable813(UserFirstName,UserLastName) VALUES
    ('Adam','Smith'),('Chris','Brown'),('David','Miller'),('Carol','Taylor');
Query OK, 4 rows affected (...)

सभी रिकॉर्ड्स देखना

mysql> SELECT * FROM DemoTable813;
+--------+---------------+--------------+
| UserId | UserFirstName | UserLastName |
+--------+---------------+--------------+
| 1      | Adam          | Smith        |
| 2      | Chris         | Brown        |
| 3      | David         | Miller       |
| 4      | Carol         | Taylor       |
+--------+---------------+--------------+
4 rows in set (0.00 sec)

शर्त के साथ GROUP_CONCAT

UserId < 4 वाले यूजर्स के लास्ट नेम जोड़ना:

mysql> SELECT GROUP_CONCAT(UserLastName) FROM DemoTable813 WHERE UserId < 4;

परिणाम

+----------------------------+
| GROUP_CONCAT(UserLastName) |
+----------------------------+
| Smith,Brown,Miller         |
+----------------------------+
1 row in set (0.00 sec)

उन्नत विकल्प

कस्टम सेपरेटर

SELECT GROUP_CONCAT(UserLastName SEPARATOR ' | ') FROM DemoTable813 WHERE UserId < 4;
-- परिणाम: Smith | Brown | Miller

क्रमबद्ध परिणाम

SELECT GROUP_CONCAT(UserLastName ORDER BY UserLastName DESC) FROM DemoTable813 WHERE UserId < 4;
-- परिणाम: Smith,Miller,Brown

डुप्लिकेट हटाना

SELECT GROUP_CONCAT(DISTINCT UserLastName) FROM DemoTable813;

एकाधिक कॉलम जोड़ना

SELECT GROUP_CONCAT(CONCAT(UserFirstName, ' ', UserLastName) SEPARATOR '; ') 
FROM DemoTable813 WHERE UserId < 4;
-- परिणाम: Adam Smith; Chris Brown; David Miller

GROUP_CONCAT के साथ GROUP BY

SELECT Department, GROUP_CONCAT(EmployeeName) 
FROM Employees 
GROUP BY Department;

महत्वपूर्ण सीमाएं

  • डिफ़ॉल्ट लंबाई सीमा: 1024 बाइट्स (group_concat_max_len सिस्टम वेरिएबल से नियंत्रित)
  • लंबे परिणाम के लिए: SET SESSION group_concat_max_len = 10000;
  • NULL मान स्वतः अनदेखे हो जाते हैं

प्रदर्शन नोट

बड़े डेटासेट्स पर GROUP_CONCAT मेमोरी-इंटेंसिव हो सकता है। आवश्यकता अनुसार LIMIT या फ़िल्टरिंग का उपयोग करें।

  1. - MySQL में रिकॉर्ड घटनाओं की गिनती करके नए कॉलम में कैसे प्रदर्शित करें?

    MySQL में किसी कॉलम के मान की घटनाओं (occurrences) को गिनकर नए कॉलम के रूप में प्रदर्शित करने के लिए, COUNT(*) के साथ GROUP BY का उपयोग करें। यह डेटा वितरण विश्लेषण, डुप्लिकेट पहचान, और आवृत्ति रिपोर्टिंग के लिए मानक तरीका है। उदाहरण: Value कॉलम की घटनाएं गिनना डेमो टेबल बनाएं: mysql> CREATE T

  1. - MySQL में वर्तमान तारीख और अगले दिन के रिकॉर्ड कैसे चुनें?

    MySQL में शिपिंग/डिलीवरी तारीख के आधार पर आज और कल के रिकॉर्ड चुनने के लिए, CURDATE() फंक्शन के साथ IN ऑपरेटर या रेंज तुलना का उपयोग करें। यह डैशबोर्ड, नोटिफिकेशन, और शेड्यूलिंग क्वेरीज़ के लिए सामान्य आवश्यकता है। उदाहरण: आज और कल की शिपिंग वाले ग्राहक वर्तमान तारीख जांचें: mysql> SELECT CURD

  1. - Java के साथ MySQL में वर्तमान तारीख में महीने जोड़ें

    सिंटैक्स String query = INSERT INTO yourTableName VALUES (CURDATE() + INTERVAL howManyMonths MONTH); उदाहरण वर्तमान तारीख: 2020-10-25 2 महीने जोड़ने के बाद: 2020-12-25 Java कोड 0) System.out.println(Record inserted successfully..Look into the database); else System.out.print