Đây là một cách tiếp cận, để lấy tập kết quả do MySQL trả về. (Nhưng có thể dễ dàng hơn nếu chỉ trả lại tất cả các hàng và nhận mọi hàng thứ ba trong ứng dụng). Nhưng nó có thể được thực hiện trong MySQL khá dễ dàng. Lưu ý rằng truy vấn ban đầu của bạn được bao bọc trong parens (dưới dạng chế độ xem nội tuyến) được đặt bí danh là 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
Điều đó sẽ trả về mọi hàng thứ ba, bắt đầu với hàng đầu tiên. Để nhận mọi hàng thứ ba bắt đầu bằng hàng thứ 2 và thứ 3, hãy thay thế chữ = 1
trong mệnh đề HAVING với = 2
hoặc = 3
(tương ứng).