Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je récupérer chaque Nième enregistrement d'une table ?

Vous pouvez faire une requête de décalage variable dans une seule requête comme celle-ci

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;

Cela ajoutera un identifiant entier unique à chaque ligne via la variable @row. Ensuite, il sélectionnera une ligne tous les 880 via l'opérateur modulo et cette variable. Une clause order by est nécessaire pour obtenir un comportement reproductible, sinon le résultat serait effectivement aléatoire.