sql >> Database >  >> RDS >> Mysql

Hoe elke n-de rij in mySQL te selecteren vanaf n

Hier is één benadering om de resultatenset door MySQL te laten retourneren. (Maar het is misschien gemakkelijker om gewoon alle rijen terug te geven en elke derde rij in de app te krijgen). Maar het kan vrij eenvoudig in MySQL worden gedaan. Houd er rekening mee dat uw oorspronkelijke zoekopdracht tussen haakjes is geplaatst (als een inline-weergave) met een alias als r .

SELECT r.*
  FROM ( 
         SELECT *
           FROM mbr_qa_questions
          ORDER BY q_votes DESC
       ) r
 CROSS
  JOIN ( SELECT @i := 0 ) s
HAVING ( @i := @i + 1) MOD 3 = 1

Dat keert elke derde rij terug, te beginnen met de eerste rij. Om elke derde rij te krijgen die begint met de 2e en 3e rij, vervangt u de letterlijke = 1 in de HAVING-clausule met = 2 of = 3 (respectievelijk).



  1. SQLite behalve

  2. Overwegingen met betrekking tot gegevensintegriteit en prestatie in semisynchrone MySQL-replicatie

  3. Batch-bestand voor mysqldump om een ​​back-up te maken van elke database in een apart bestand

  4. Java.sql.SQLException ophalen:bewerking niet toegestaan ​​nadat ResultSet is gesloten