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

Come posso recuperare ogni ennesimo record da una tabella?

Puoi eseguire una query di offset variabile in una singola query come questa

select NAME from 
   (select @row:[email protected]+1 as row, t.NAME from 
    tbl t, (select @row := 0) y 
    where alphabet_index='A' order by alphabet_index) z 
where row % 880 = 1;

Ciò aggiungerà un ID intero univoco a ciascuna riga tramite la variabile @row. Quindi selezionerà una riga ogni 880 tramite l'operatore modulo e quella variabile. Una clausola order by è necessaria per ottenere un comportamento ripetibile, altrimenti il ​​risultato sarebbe effettivamente casuale.