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

MySQL क्वेरी से Nवीं पंक्ति कैसे प्राप्त करें?


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 ऑफसेटक्वेरी
पहली पंक्ति0LIMIT 0,1 या LIMIT 1
दूसरी पंक्ति1LIMIT 1,1
Nवीं पंक्तिN-1LIMIT 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;

  1. - MySQL में ORDER BY RAND() LIMIT 1 से यादृच्छिक रिकॉर्ड चुनें

    MySQL में ORDER BY RAND() LIMIT 1 का उपयोग करके टेबल से एक यादृच्छिक पंक्ति चुन सकते हैं। सिंटैक्स SELECT * FROM टेबल_नाम ORDER BY RAND() LIMIT 1; उदाहरण 1. टेबल बनाएं ); 2. डेटा डालें INSERT INTO DemoTable1581(StudentName) VALUES(Chris), (Bob), (Sam), (Mike), (Carol); 3. यादृच्छिक पंक्ति चुन

  1. - MySQL में SELECT क्वेरी से विशिष्ट कॉलम रिकॉर्ड कैसे प्राप्त करें?

    MySQL में किसी टेबल से केवल विशिष्ट कॉलम के डेटा को प्राप्त करना बहुत आसान है। इसके लिए SELECT * के बजाय केवल उस कॉलम का नाम लिखें जिसे आप देखना चाहते हैं। उदाहरण के साथ समझें सबसे पहले एक डेमो टेबल बनाते हैं: mysql> CREATE TABLE DemoTable1837 ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY

  1. - MySQL में ENUM कॉलम से केवल 'NO' मानों की गणना करें

    MySQL में ENUM कॉलम पर सशर्त गणना के लिए बूलियन अभिव्यक्ति का योग (SUM(condition)) उपयोग कर सकते हैं। MySQL में TRUE = 1 और FALSE = 0 होता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1829 ( Name VARCHAR(20), isTopper ENUM(YES,NO) ); डेटा डालें mysql> INSERT INTO DemoTable1829 VALUES(