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

MySQL में ORDER BY FIELD को GROUP BY के साथ एकल क्वेरी में कैसे उपयोग करें

इसके लिए, आइए पहले एक टेबल बनाते हैं:

mysql> create table DemoTable ( 
    Message text ); 
Query OK, 0 rows affected (1.15 sec)

इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:

mysql> insert into DemoTable values('Good'); 
Query OK, 1 row affected (0.43 sec)
mysql> insert into DemoTable values('Bye'); 
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Awesome'); 
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('Bye'); 
Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable values('Good'); 
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable values('Amazing'); 
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('Awesome'); 
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('Bye'); 
Query OK, 1 row affected (0.12 sec)

सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:

mysql> select * from DemoTable;

यह निम्नलिखिक आउटपुट देगा:

+---------+
| Message |
+---------+
| Good    |
| Bye     |
| Awesome |
| Bye     |
| Good    |
| Amazing |
| Awesome |
| Bye     |
+---------+
8 rows in set (0.00 sec)

GROUP BY के साथ ORDER BY FIELD का उपयोग करने की क्वेरी

mysql> select * from DemoTable group by Message order by field(Message,'Amazing','Awesome','Good','Bye');

यह निम्नलिखिक आउटपुट देगा:

+---------+
| Message |
+---------+
| Amazing |
| Awesome |
| Good    |
| Bye     |
+---------+
4 rows in set (0.04 sec)

व्याख्या

  • GROUP BY Message डुप्लिकेट को हटाकर अद्वितीय संदेश देता है
  • FIELD(Message, 'Amazing','Awesome','Good','Bye') प्रत्येक संदेश की स्थिति लौटाता है सूची में
  • Amazing=1, Awesome=2, Good=3, Bye=4
  • ORDER BY FIELD(...) उस क्रम में सॉर्ट करता है
  • सूची में न होने वाले मान 0 प्राप्त करते हैं और पहले आते हैं

नोट

SELECT * के साथ GROUP BY (ONLY_FULL_GROUP_BY मोड में) त्रुटि दे सकता है। बेहतर: SELECT Message FROM DemoTable GROUP BY Message ORDER BY FIELD(...)।

  1. - MySQL में ORDER BY FIELD और ID से कस्टम सॉर्ट और द्वितीयक सॉर्ट

    MySQL में ORDER BY FIELD() का उपयोग करके एक कॉलम को कस्टम क्रम में सॉर्ट करें, फिर दूसरे कॉलम से द्वितीयक सॉर्ट लागू करें। सिंटैक्स SELECT * FROM टेबल_नाम ORDER BY FIELD(कॉलम1, मान1, मान2, ...) DESC/ASC, कॉलम2 DESC/ASC; उदाहरण: Mike को पहले रखें, फिर ID अवरोही क्रम में 1. टेबल बनाएं );

  1. - एकल MySQL क्वेरी में एक कॉलम में एकाधिक मान कैसे डालें?

    सिंटैक्स एक कॉलम में एकाधिक मान डालने के लिए, निम्नलिखित सिंटैक्स का उपयोग करें: INSERT INTO yourTableName VALUES (yourValue1), (yourValue2), ... (yourValueN); उदाहरण सबसे पहले एक टेबल बनाते हैं: ); अब INSERT कमांड का उपयोग करके रिकॉर्ड डालें: INSERT INTO DemoTable2022 VALUES (Computer Science)

  1. - MySQL: GROUP BY के साथ फील्ड कैसे अपडेट करें?

    समस्या MySQL सीधे UPDATE में GROUP BY का समर्थन नहीं करता। समाधान: ORDER BY LIMIT का उपयोग करें। उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2018 (EmployeeName, EmployeeSalary) VALUES (Chris, 25400); अपडेट क्वेरी Chris की पहली प्रविष्टि (EmployeeId के अनुसार) का वेतन बढ़ाएं: ORDER B