LIMIT और OFFSET: पेजिनेशन के लिए पंक्ति चयन समझें
LIMIT N OFFSET M का अर्थ है: M पंक्तियाँ छोड़ें, फिर अगली N पंक्तियाँ लौटाएं। पंक्ति गिनती 0 से शुरू होती है (OFFSET 0 = पहली पंक्ति)।
नियम
LIMIT 4 OFFSET 6→ पंक्ति 7, 8, 9, 10 लौटाता है (0-आधारित: सूचकांक 6,7,8,9)LIMIT 10 OFFSET 0→ पहली 10 पंक्तियाँLIMIT 10 OFFSET 20→ 21वीं से 30वीं पंक्ति
उदाहरण
1. टेबल बनाएं और 13 पंक्तियाँ डालें
mysql> CREATE TABLE LimitOffsettable (Id INT); mysql> INSERT INTO LimitOffsettable VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13);
2. सभी पंक्तियाँ देखें
mysql> SELECT * FROM LimitOffsettable;
+------+ | Id | +------+ | 1 | -- पंक्ति 1 (OFFSET 0) | 2 | -- पंक्ति 2 (OFFSET 1) | 3 | -- पंक्ति 3 (OFFSET 2) | 4 | -- पंक्ति 4 (OFFSET 3) | 5 | -- पंक्ति 5 (OFFSET 4) | 6 | -- पंक्ति 6 (OFFSET 5) | 7 | -- पंक्ति 7 (OFFSET 6) ← यहां से शुरू | 8 | -- पंक्ति 8 (OFFSET 7) | 9 | -- पंक्ति 9 (OFFSET 8) | 10 | -- पंक्ति 10 (OFFSET 9) ← यहां समाप्त | 11 | | 12 | | 13 | +------+
3. LIMIT 4 OFFSET 6 लागू करें
mysql> SELECT * FROM LimitOffsettable LIMIT 4 OFFSET 6;
+------+ | Id | +------+ | 7 | | 8 | | 9 | | 10 | +------+
सिंटैक्स विविधताएं
OFFSET = (p - 1) * size LIMIT = size
महत्वपूर्ण नोट्स
- ORDER BY के बिना परिणाम क्रम अनिश्चित है - हमेशा
ORDER BYउपयोग करें - बड़े OFFSET पर प्रदर्शन गिरता है (MySQL को छोड़नी वाली पंक्तियाँ स्कैन करनी पड़ती हैं)
- कर्सर-आधारित पेजिनेशन (WHERE id > last_seen_id) बड़े डेटासेट के लिए बेहतर