Inilah satu pendekatan, untuk mendapatkan hasil yang dikembalikan oleh MySQL. (Tetapi mungkin lebih mudah untuk mengembalikan semua baris, dan mendapatkan setiap baris ketiga dalam aplikasi). Tapi itu bisa dilakukan di MySQL dengan cukup mudah. Perhatikan bahwa kueri asli Anda dibungkus dengan parens (sebagai tampilan sebaris) alias sebagai 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
Itu akan mengembalikan setiap baris ketiga, dimulai dengan baris pertama. Untuk mendapatkan setiap baris ketiga dimulai dengan baris ke-2 dan ke-3, ganti literal = 1
dalam klausa HAVING dengan = 2
atau = 3
(masing-masing).