sql >> Databasteknik >  >> RDS >> Mysql

Hur man väljer var n:e rad i mySQL från n

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).



  1. Hur man uppnår PostgreSQL hög tillgänglighet med pgBouncer

  2. SQL-fråga dynamiskt tabellnamn i FOR

  3. MySQL-anslutning över SSH-tunnel

  4. Största värdet av flera kolumner med kolumnnamn?