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

MySQL में ORDER BY DESC LIMIT से अंतिम 30 पंक्तियां प्राप्त करें

MySQL में अंतिम N पंक्तियां प्राप्त करने के लिए ORDER BY ... DESC LIMIT N का उपयोग करें, फिर आवश्यकतानुसार पुनः क्रमबद्ध करें।

सिंटैक्स

SELECT * FROM टेबल_नाम
ORDER BY कॉलम_नाम DESC
LIMIT 30;

उदाहरण: अंतिम 30 पंक्तियां (ID अवरोही क्रम)

1. टेबल बनाएं (ऑटो-इन्क्रीमेंट ID)

mysql> CREATE TABLE DemoTable1567 (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
    -> );

2. 37 पंक्तियां डालें

mysql> INSERT INTO DemoTable1567 VALUES(),(),(),()...;  -- 37 बार

3. अंतिम 30 पंक्तियां (अवरोही क्रम में)

mysql> SELECT * FROM DemoTable1567
    -> ORDER BY Id DESC
    -> LIMIT 30;

4. परिणाम (ID 37 से 8 तक)

+----+
| Id |
+----+
| 37 |
| 36 |
| 35 |
...
| 10 |
| 9  |
| 8  |
+----+
30 rows in set

आरोही क्रम में अंतिम 30 पंक्तियां

SELECT * FROM (
    SELECT * FROM DemoTable1567
    ORDER BY Id DESC
    LIMIT 30
) AS t
ORDER BY Id ASC;

परिणाम (ID 8 से 37 तक)

+----+
| Id |
+----+
| 8  |
| 9  |
| 10 |
...
| 35 |
| 36 |
| 37 |
+----+

प्रदर्शन विचार

  • ORDER BY प्राथमिक_कुंजी DESC LIMIT N बहुत तेज़ (इंडेक्स उपयोग)
  • गैर-इंडेक्स कॉलम पर धीमा (फाइलसॉर्ट)
  • बड़े ऑफसेट के लिए WHERE id > (SELECT MAX(id) - 30 ...) बेहतर

सापेक्ष समय के लिए

-- पिछले 30 दिन की पंक्तियां
SELECT * FROM logs
WHERE created_at >= NOW() - INTERVAL 30 DAY
ORDER BY created_at DESC;
  1. MySQL से अंतिम 10 रो कैसे चुनें? MySQL से अंतिम 10 रो कैसे चुनें?

    MySQL से अंतिम 10 रो चुनने के लिए, हम SELECT स्टेटमेंट और LIMIT कॉन्सेप्ट के साथ सबक्वेरी का उपयोग कर सकते हैं। निम्न एक उदाहरण है। टेबल बनाना। mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) टेबल में रिकॉर

  1. - MySQL में ENUM फील्ड का उपयोग करके पंक्तियों का चयन कैसे करें?

    MySQL में ENUM डेटा प्रकार पूर्वनिर्धारित मानों तक सीमित करता है। ENUM कॉलम पर क्वेरी करते समय NULL मानों और तुलना व्यवहार को समझना महत्वपूर्ण है। ENUM तालिका बनाएं mysql> CREATE TABLE DemoTable ( -> EmployeeStatus ENUM(FULLTIME, Intern) DEFAULT NULL -> ); डेटा डालें mysql> INS

  1. - MySQL में सबक्वेरी और ORDER BY RAND से अंतिम 50 प्रविष्टियों में से 5 रैंडम पंक्तियाँ चुनें

    बड़ी टेबल से हाल की N पंक्तियों में से रैंडम नमूना लेने के लिए: पहले सबक्वेरी में ORDER BY id DESC LIMIT N से हाल की पंक्तियाँ लें, फिर बाहरी क्वेरी में ORDER BY RAND() LIMIT M लागू करें। टेबल बनाएं (केवल ID) mysql> CREATE TABLE DemoTable1853 ( UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY