आपको चयन कथन के साथ सबक्वायरी का उपयोग करने की आवश्यकता है, एक आंतरिक के लिए और एक बाहरी के लिए चयन करें। आंतरिक चयन पंक्तियों को लौटाएगा और बाहरी आरोही क्रम से क्रम देगा। वाक्य रचना इस प्रकार है:
SELECT *FROM ( SELECT *FROM yourTableName ORDER BY yourColumnName1 DESC LIMIT 9 ) AS anyAliasName ORDER BY yourColumnName2;
उपरोक्त वाक्य रचना को समझने के लिए, आइए एक तालिका बनाते हैं। तालिका बनाने की क्वेरी इस प्रकार है:
mysql> create table OrderByAfterLimit -> ( -> Id int NOT NULL AUTO_INCREMENT, -> UserName varchar(20), -> UserAge int, -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.69 sec)
अब आप इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डाल सकते हैं। क्वेरी इस प्रकार है:
mysql> insert into OrderByAfterLimit(UserName, UserAge) values('John',23); Query OK, 1 row affected (0.24 sec) mysql> insert into OrderByAfterLimit(UserName, UserAge) values('Larry',21); Query OK, 1 row affected (0.36 sec) mysql> insert into OrderByAfterLimit(UserName, UserAge) values('Bob',26); Query OK, 1 row affected (0.19 sec) mysql> insert into OrderByAfterLimit(UserName, UserAge) values('James',22); Query OK, 1 row affected (0.18 sec) mysql> insert into OrderByAfterLimit(UserName, UserAge) values('Robert',28); Query OK, 1 row affected (0.20 sec) mysql> insert into OrderByAfterLimit(UserName, UserAge) values('Mike',29); Query OK, 1 row affected (0.19 sec) mysql> insert into OrderByAfterLimit(UserName, UserAge) values('Carol',24); Query OK, 1 row affected (0.13 sec) mysql> insert into OrderByAfterLimit(UserName, UserAge) values('David',20); Query OK, 1 row affected (0.23 sec) mysql> insert into OrderByAfterLimit(UserName, UserAge) values('Maxwell',30); Query OK, 1 row affected (0.46 sec)
चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है:
mysql> select *from OrderByAfterLimit;
निम्न आउटपुट है:
+----+----------+---------+ | Id | UserName | UserAge | +----+----------+---------+ | 1 | John | 23 | | 2 | Larry | 21 | | 3 | Bob | 26 | | 4 | James | 22 | | 5 | Robert | 28 | | 6 | Mike | 29 | | 7 | Carol | 24 | | 8 | David | 20 | | 9 | Maxwell | 30 | +----+----------+---------+ 9 rows in set (0.00 sec)
यहाँ सीमा के बाद ऑर्डर करने की क्वेरी है:
mysql> select *from -> ( -> select *from OrderByAfterLimit order by UserAge DESC LIMIT 9) AS tbl1 -> order by UserName;
निम्न आउटपुट है:
+----+----------+---------+ | Id | UserName | UserAge | +----+----------+---------+ | 3 | Bob | 26 | | 7 | Carol | 24 | | 8 | David | 20 | | 4 | James | 22 | | 1 | John | 23 | | 2 | Larry | 21 | | 9 | Maxwell | 30 | | 6 | Mike | 29 | | 5 | Robert | 28 | +----+----------+---------+ 9 rows in set (0.00 sec)