इसके लिए, आइए पहले एक टेबल बनाते हैं:
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(...)।