Her er en fremgangsmåde, for at få resultatsættet returneret af MySQL. (Men det er måske nemmere bare at returnere alle rækkerne og få hver tredje række i appen). Men det kan gøres i MySQL ret nemt. Bemærk, at din oprindelige forespørgsel er pakket ind i parens (som en indlejret visning) kaldet 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
Det vil returnere hver tredje række, begyndende med den første række. For at få hver tredje række, der starter med 2. og 3. række, skal du erstatte den bogstavelige = 1
i HAVING-sætningen med = 2
eller = 3
(henholdsvis).