MySQL LIMIT और OFFSET: पेजिनेशन और परिणाम छोड़ना
OFFSET क्लॉज का उपयोग करके आप परिणाम सेट की शुरुआत से निर्दिष्ट संख्या में पंक्तियों को छोड़ सकते हैं। LIMIT के साथ संयोजित करके पेजिनेशन लागू किया जाता है।
उदाहरण: पहले 3 रिकॉर्ड छोड़कर बाकी देखें
टेबल बनाएं:
CREATE TABLE DemoTable (Name VARCHAR(40));
INSERT INTO DemoTable VALUES ('Chris'), ('Robert'), ('Mike'), ('Bob'), ('David');
सभी डेटा:
+--------+ | Name | +--------+ | Chris | | Robert | | Mike | | Bob | | David | +--------+
OFFSET 3 के साथ पहले 3 छोड़ें
SELECT * FROM DemoTable LIMIT 100 OFFSET 3;
परिणाम:
+-------+ | Name | +-------+ | Bob | | David | +-------+
सिंटैक्स विविधताएं
OFFSET = (p - 1) * size LIMIT = size
उदाहरण: पेज 3, आकार 10 → LIMIT 10 OFFSET 20 या LIMIT 20, 10
प्रदर्शन चेतावनी: बड़ा OFFSET धीमा होता है
MySQL OFFSET N के लिए पहले N पंक्तियों को पढ़कर छोड़ देता है। बड़े OFFSET (जैसे 1,000,000) पर यह बहुत धीमा होता है।
बड़े ऑफसेट के लिए बेहतर तरीका: सीक मेथड (Keyset Pagination)
-- अंतिम देखे गए ID का उपयोग करें SELECT * FROM DemoTable WHERE Id > 1000000 -- अंतिम देखी गई पंक्ति का ID ORDER BY Id LIMIT 20;
यह इंडेक्स का उपयोग करता है और स्थिर तेज़ प्रदर्शन देता है।