Mysql
 sql >> Database >  >> RDS >> Mysql

Come selezionare ogni ennesima riga in MySQL a partire da n

Ecco un approccio per ottenere il set di risultati restituito da MySQL. (Ma potrebbe essere più semplice restituire tutte le righe e ottenere ogni terza riga all'interno dell'app). Ma può essere fatto in MySQL abbastanza facilmente. Tieni presente che la tua query originale è racchiusa tra parentesi (come vista in linea) alias come 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

Ciò restituirà ogni terza riga, a partire dalla prima riga. Per ottenere ogni terza riga a partire dalla 2a e 3a riga, sostituisci il valore letterale = 1 nella clausola HAVING con = 2 o = 3 (rispettivamente).