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

MySQL में LIMIT, ORDER BY के बाद लागू होता है: क्रम और निष्पादन क्रम

MySQL क्वेरी निष्पादन क्रम: ORDER BY पहले, फिर LIMIT

निष्पादन क्रम:

  1. FROM / JOIN
  2. WHERE
  3. GROUP BY
  4. HAVING
  5. SELECT
  6. ORDER BY
  7. LIMIT

निष्कर्ष: ORDER BY पहले निष्पादित होता है, फिर LIMIT परिणाम सेट को सीमित करता है।

व्यावहारिक प्रमाण

1. टेबल बनाएं:

mysql> CREATE TABLE LimitAfterOrderBy (Id INT, Name VARCHAR(100)); 
Query OK, 0 rows affected (0.50 sec)

2. डेटा डालें:

mysql> INSERT INTO LimitAfterOrderBy VALUES(101,'John');
mysql> INSERT INTO LimitAfterOrderBy VALUES(102,'Carol');
mysql> INSERT INTO LimitAfterOrderBy VALUES(103,'Bob');
mysql> INSERT INTO LimitAfterOrderBy VALUES(104,'Sam');

3. मूल डेटा (इन्सर्ट क्रम):

+------+-------+ 
| Id   | Name  | 
+------+-------+ 
| 101  | John  | 
| 102  | Carol | 
| 103  | Bob   | 
| 104  | Sam   | 
+------+-------+ 
4 rows in set (0.00 sec)

4. ORDER BY Name फिर LIMIT 4:

mysql> SELECT * FROM LimitAfterOrderBy ORDER BY Name LIMIT 4;
+------+-------+ 
| Id   | Name  | 
+------+-------+ 
| 103  | Bob   | 
| 102  | Carol | 
| 101  | John  | 
| 104  | Sam   | 
+------+-------+ 
4 rows in set (0.00 sec)

परिणाम नाम के अनुसार वर्णमाला क्रम में सॉर्टेड हैं, फिर LIMIT 4 लागू हुआ (सभी 4 पंक्तियां क्योंकि कुल 4 हैं)।

व्यावहारिक निहितार्थ:

पैजिनेशन (OFFSET + LIMIT):

-- पेज 1 (पहले 10)
SELECT * FROM table ORDER BY created_at DESC LIMIT 10 OFFSET 0;

-- पेज 2 (अगले 10)
SELECT * FROM table ORDER BY created_at DESC LIMIT 10 OFFSET 10;

TOP-N क्वेरी:

-- शीर्ष 5 सबसे महंगे उत्पाद
SELECT * FROM products ORDER BY price DESC LIMIT 5;

प्रदर्शन टिप:

  • ORDER BY कॉलम पर इंडेक्स LIMIT के साथ बहुत तेज होता है (इंडेक्स स्कैन + जल्दी रुकना)
  • ORDER BY RAND() LIMIT 1 बड़ी टेबल पर धीमा — विकल्प उपयोग करें
  • LIMIT बिना ORDER BY के अनिश्चित क्रम देता है

संबंधित: LIMIT ऑफसेट सिंटैक्स:

LIMIT offset, row_count   -- पुराना सिंटैक्स
LIMIT row_count OFFSET offset  -- मानक SQL (MySQL 8.0+)
  1. - MySQL में ORDER BY INSTR() से विशिष्ट शब्द क्रमबद्ध करना

    INSTR() फंक्शन के साथ कस्टम ऑर्डरिंग INSTR(str, substr) फंक्शन str में substr की पहली घटना की स्थिति (1-आधारित) लौटाता है। मिलने पर स्थिति, न मिलने पर 0। ORDER BY INSTR(...) से शब्द की स्थिति के अनुसार क्रमबद्ध करें। उदाहरण: टेबल बनाना और डेटा इन्सर्ट करना mysql> CREATE TABLE DemoTable822(Word T

  1. - MySQL में पहले अक्षर के आधार पर ORDER BY कैसे करें?

    परिचय MySQL में किसी कॉलम के पहले अक्षर के आधार पर रिकॉर्ड्स को क्रमबद्ध करने के लिए ORDER BY CASE स्टेटमेंट का उपयोग किया जाता है। यह तब उपयोगी होता है जब आपको किसी विशेष अक्षर से शुरू होने वाले रिकॉर्ड्स को प्राथमिकता देनी हो। उदाहरण: टेबल बनाना और डेटा डालना ); Query OK, 0 rows affected (2.26 s

  1. - MySQL में तिथि के आधार पर सशर्त रूप से BETWEEN/BEFORE/AFTER कैसे चुनें?

    सिंटैक्स select * from yourTableName where yourColumnName1 yourValue2 OR yourColumnName2 is null); उदाहरण: कर्मचारी जॉइनिंग और रिलीविंग तिथि insert into demo35(joining_date,relieving_date) values(2020-01-10,2020-07-11), (2020-05-07,2020-12-08), (2020-04-11,2020-09-18), (2020-03-12,2020-10-01);