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

MySQL SELECT में OFFSET का उपयोग करके पहले N परिणाम छोड़ें

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;

यह इंडेक्स का उपयोग करता है और स्थिर तेज़ प्रदर्शन देता है।

  1. - MySQL में परिणाम समूहित करें और सूची में दिखाएं

    समाधान GROUP BY के साथ ORDER BY का उपयोग करके गणना और क्रमबद्ध करें। सिंटैक्स SELECT yourColumnName, COUNT(*) AS aliasName FROM yourTableName GROUP BY yourColumnName ORDER BY yourColumnName; उदाहरण टेबल बनाएं: INSERT INTO demo7 (first_name) VALUES (John), (David), (John), (Bob), (David), (David),

  1. - MySQL में अल्पविराम-पृथक सूची में स्ट्रिंग और अगला अक्षर खोजने के लिए रेगेक्स

    समाधान REGEX के बजाय FIND_IN_SET() फंक्शन का उपयोग करें, जो अल्पविराम-पृथक सूची के लिए बनाया गया है। सिंटैक्स SELECT * FROM yourTableName WHERE FIND_IN_SET(anyValue, yourColumnName); उदाहरण टेबल बनाएं: INSERT INTO demo17 (first_name, value) VALUES (John,50), (David,), (Adam,50,89), (Adam,49,89,43

  1. - MySQL में सबसे अधिक सैलरी कैसे चुनें?

    MAX() फ़ंक्शन किसी कॉलम का अधिकतम मान प्राप्त करने के लिए: select MAX(yourColumnName) AS anyAliasName from yourTableName; उदाहरण insert into demo44(employee_name,employee_salary) values(John,3000), (David,4500), (Bob,3500), (Carol,5500), (Mike,4900); क्वेरी और परिणाम select MAX(employee_salary)