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

MySQL में सबक्वेरी और ORDER BY DESC LIMIT से अंतिम 3 पंक्तियां आरोही क्रम में प्राप्त करें

टेबल की अंतिम N पंक्तियों को आरोही क्रम में प्राप्त करने के लिए: पहले अवरोही क्रम में N पंक्तियां लें, फिर बाहरी क्वेरी में आरोही क्रम में सॉर्ट करें।

सिंटैक्स

SELECT * FROM (
    SELECT * FROM टेबल_नाम
    ORDER BY कॉलम_नाम DESC
    LIMIT 3
) AS alias
ORDER BY कॉलम_नाम ASC;

उदाहरण

1. टेबल बनाएं

mysql> CREATE TABLE DemoTable1579 (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name VARCHAR(20)
    -> );

2. डेटा डालें

mysql> INSERT INTO DemoTable1579(Name) VALUES('Robert'), ('Bob'), ('Chris'), ('Sam'), ('Mike');

3. सभी रिकॉर्ड

mysql> SELECT * FROM DemoTable1579;
+----+--------+
| Id | Name   |
+----+--------+
| 1  | Robert |
| 2  | Bob    |
| 3  | Chris  |
| 4  | Sam    |
| 5  | Mike   |
+----+--------+

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

mysql> SELECT * FROM (
    ->     SELECT * FROM DemoTable1579
    ->     ORDER BY Id DESC
    ->     LIMIT 3
    -> ) t
    -> ORDER BY Id;

5. परिणाम

+----+-------+
| Id | Name  |
+----+-------+
| 3  | Chris |
| 4  | Sam   |
| 5  | Mike  |
+----+-------+

चरण-दर-चरण

  1. आंतरिक क्वेरी: ORDER BY Id DESC LIMIT 3 → Id 5, 4, 3 (अवरोही)
  2. बाहरी क्वेरी: ORDER BY Id ASC → Id 3, 4, 5 (आरोही)

उपयोग के मामले

  • नवीनतम 3 ऑर्डर को कालानुक्रमिक क्रम में दिखाना
  • हाल के लॉग प्रविष्टियों को समय क्रम में प्रदर्शित करना
  • चैट में नवीनतम संदेशों को पुराने से नए क्रम में

MySQL 8.0+ विकल्प: विंडो फ़ंक्शन

SELECT * FROM (
    SELECT *, ROW_NUMBER() OVER (ORDER BY Id DESC) AS rn
    FROM DemoTable1579
) t WHERE rn <= 3
ORDER BY Id ASC;
  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 में DATE_ADD से तारीख में वर्ष जोड़ें

    UPDATE और DATE_ADD() से मौजूदा तारीखों में अंतराल जोड़ें मौजूदा तारीख कॉलम में वर्ष (या अन्य अंतराल) जोड़ने के लिए UPDATE के साथ DATE_ADD() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec) mysql> insert into

  1. - MySQL में CONCAT_WS() से कन्कैटिनेट करके शर्त के साथ ROW कैसे चुनें?

    CONCAT_WS() फ़ंक्शन CONCAT_WS(separator, col1, col2, ...) सेपरेटर के साथ कॉलम जोड़ता है। उदाहरण insert into demo38 values(10,John,Smith,1990-10-01), (11,David,Miller,1994-01-21), (11,John,Doe,1992-02-01), (12,Adam,Smith,1996-11-11), (13,Chris,Brown,1997-03-10); क्वेरी: user_id 11 और 13 के लिए फ़