Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So wählen Sie jede n-te Zeile in mySQL ab n aus

Hier ist ein Ansatz, um die von MySQL zurückgegebene Ergebnismenge zu erhalten. (Aber es könnte einfacher sein, einfach alle Zeilen zurückzugeben und jede dritte Zeile in der App abzurufen). Aber es kann in MySQL ziemlich einfach gemacht werden. Beachten Sie, dass Ihre ursprüngliche Abfrage in Klammern (als Inline-Ansicht) mit dem Alias ​​r eingeschlossen ist .

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

Dadurch wird jede dritte Zeile zurückgegeben, beginnend mit der ersten Zeile. Um jede dritte Zeile beginnend mit der 2. und 3. Zeile zu erhalten, ersetzen Sie das Literal = 1 in der HAVING-Klausel mit = 2 oder = 3 (jeweils).