MySQLから返される結果セットを取得するための1つのアプローチがあります。 (ただし、すべての行を返し、アプリ内で3行ごとに取得する方が簡単な場合があります)。しかし、MySQLでは非常に簡単に実行できます。元のクエリは、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
これにより、最初の行から3行ごとに返されます。 2行目と3行目から3行おきに取得するには、リテラル= 1
を置き換えます。 = 2
のHAVING句内 または= 3
(それぞれ)。