Här är ett tillvägagångssätt, för att få resultatuppsättningen returnerad av MySQL. (Men det kan vara lättare att bara returnera alla rader och få var tredje rad i appen). Men det kan göras i MySQL ganska enkelt. Observera att din ursprungliga fråga är inlindad i parens (som en inline-vy) med alias som 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 kommer tillbaka var tredje rad, med början på den första raden. För att få var tredje rad som börjar med 2:a och 3:e raden, ersätt den bokstavliga = 1
i HAVING-satsen med = 2
eller = 3
(respektive).