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