MySQL में LIMIT offset, count का उपयोग करके Nवीं पंक्ति (0-आधारित ऑफसेट) प्राप्त करें।
सिंटैक्स
SELECT * FROM yourTableName ORDER BY yourColumnName LIMIT n, 1;
n= ऑफसेट (0-आधारित: 0 = पहली पंक्ति, 1 = दूसरी पंक्ति...)1= लौटाने वाली पंक्तियों की संख्या
उदाहरण
टेबल बनाना
mysql> create table NthRecordDemo ( -> Id int, -> Name varchar(200) -> ); Query OK, 0 rows affected (0.92 sec)
रिकॉर्ड डालना
mysql> insert into NthRecordDemo values(100,'John'); mysql> insert into NthRecordDemo values(101,'Bob'); mysql> insert into NthRecordDemo values(102,'Carol'); mysql> insert into NthRecordDemo values(103,'Smith'); mysql> insert into NthRecordDemo values(104,'Johnson'); mysql> insert into NthRecordDemo values(105,'Sam'); mysql> insert into NthRecordDemo values(106,'David');
सभी रिकॉर्ड देखना
mysql> select *from NthRecordDemo;
+------+---------+ | Id | Name | +------+---------+ | 100 | John | | 101 | Bob | | 102 | Carol | | 103 | Smith | | 104 | Johnson | | 105 | Sam | | 106 | David | +------+---------+
7वीं पंक्ति प्राप्त करना (ऑफसेट 6)
mysql> select *from NthRecordDemo order by Id limit 6,1;
+------+-------+ | Id | Name | +------+-------+ | 106 | David | +------+-------+
ऑफसेट गणना
| चाहिए | LIMIT ऑफसेट | क्वेरी |
|---|---|---|
| पहली पंक्ति | 0 | LIMIT 0,1 या LIMIT 1 |
| दूसरी पंक्ति | 1 | LIMIT 1,1 |
| Nवीं पंक्ति | N-1 | LIMIT N-1,1 |
| अंतिम पंक्ति | (कुल-1) | ORDER BY id DESC LIMIT 1 |
अन्य तरीके
-- MySQL 8.0+ ROW_NUMBER() के साथ SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY Id) AS rn FROM NthRecordDemo ) t WHERE rn = 7; -- OFFSET सिंटैक्स (MySQL 8.0.13+) SELECT * FROM NthRecordDemo ORDER BY Id LIMIT 1 OFFSET 6;
प्रदर्शन नोट
- बड़े ऑफसेट पर
LIMIT offset, countधीमा होता है (offset पंक्तियां स्किप करता है) - बड़े ऑफसेट के लिए कवरिंग इंडेक्स या WHERE क्लॉज उपयोग करें
WHERE id > last_seen_id ORDER BY id LIMIT 1पैटर्न बेहतर (कीसेट पेजिनेशन)
पेजिनेशन उदाहरण
-- पेज 1 (पहले 10) SELECT * FROM posts ORDER BY created_at DESC LIMIT 10; -- पेज 2 (अगले 10) - ऑफसेट तरीका SELECT * FROM posts ORDER BY created_at DESC LIMIT 10 OFFSET 10; -- पेज 2 - कीसेट तरीका (तेज) SELECT * FROM posts WHERE created_at < 'last_seen_date' ORDER BY created_at DESC LIMIT 10;