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).