Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MYSQL पिछले 5 अलग-अलग रिकॉर्ड के लिए 5 रिकॉर्ड चुनें

कई अन्य DBMS (Oracle, SQL-Server, Postgres) में आप विंडो फ़ंक्शंस का उपयोग कर सकते हैं:

SELECT id, file, folder, added
FROM
  ( SELECT id, file, folder, added,
           DENSE_RANK() OVER (ORDER BY added DESC) AS d_rank,
           ROW_NUMBER() OVER (PARTITION BY added ORDER BY id DESC) AS row_no
    FROM AviationImages
  ) d
WHERE d_rank <= 5          -- limit number of dates
  AND row_no <= 5 ;        -- limit number of images per date

MySQL में आपके पास विंडो फ़ंक्शन और OVER . की विलासिता नहीं है खंड:

SELECT i.id, i.file, i.folder, i.added
FROM
    ( SELECT DISTINCT added
      FROM AviationImages
      ORDER BY added DESC
      LIMIT 5
    ) AS da
  JOIN
    AviationImages AS i
      ON  i.added = da.added
      AND i.id >= COALESCE(
          ( SELECT ti.id
            FROM AviationImages AS ti
            WHERE ti.added = da.added
            ORDER BY ti.id DESC
            LIMIT 1 OFFSET 4
          ), -2147483647) ;             -- use 0 if the `id` is unsigned int

(added, id) . पर एक अनुक्रमणिका दक्षता में मदद करेगा - और यदि तालिका InnoDB और id . का उपयोग करती है प्राथमिक कुंजी है, फिर (added) . पर केवल एक अनुक्रमणिका है पर्याप्त होगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL InnoDB ईमेल पता युक्त पूर्ण पाठ खोज

  2. PHP और mySQL:वास्तव में htmlentities का उपयोग कब करें?

  3. MySQL से चिपके रहने के 10 कारण

  4. केकपीएचपी 2.x . में आभासी क्षेत्रों का उपयोग करना

  5. स्कूप के माध्यम से हाइव हडूप से डेटा को mysql में सहेजें?