Zde je jeden přístup, jak získat sadu výsledků vrácenou MySQL. (Mohlo by však být jednodušší vrátit všechny řádky a získat každý třetí řádek v aplikaci). Ale to lze udělat v MySQL docela snadno. Všimněte si, že váš původní dotaz je zabalen do závorek (jako vložený pohled) s aliasem 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
To se vrátí každý třetí řádek, počínaje prvním řádkem. Chcete-li, aby každý třetí řádek začínal 2. a 3. řádkem, nahraďte doslovný = 1
v klauzuli HAVING s = 2
nebo = 3
(respektive).