sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo recupero cada N-ésimo registro de una tabla?

Puede hacer una consulta de compensación variable en una sola consulta como esta

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;

Esto agregará una identificación entera única a cada fila a través de la variable @row. Luego, seleccionará una fila cada dos 880 a través del operador de módulo y esa variable. Se requiere una cláusula order by para obtener un comportamiento repetible, de lo contrario, el resultado sería efectivamente aleatorio.