première centaine
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 0, 100
prochaine centaine
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 100, 100
vous êtes très observateur pour passer la commande par
LA DÉCLARATION DE LIMITE EXPLIQUÉE : La LIMIT
l'instruction n'est PAS un WHERE
clause. Il ne sélectionne pas par id
ni en fait par aucun critère, (il where
clause fait cela) Au lieu de cela, la limit
clause garantit simplement que vous recevez un morceau du block
des résultats qui sont sous-ensemble de "tout". D'où l'importance de mentionner un order by
à chaque fois, de sorte que chaque appel suivant vous donnera le bon morceau du bloc de données dans l'ordre, et vous pouvez 'suivant', 'suivant', 'suivant' à travers eux
EG :pour la table désordonnée this_table
:
+-------+-------------+
| id | value |
+-------+-------------+
| 1 | bob |
| 12 | fish |
| 112 | pink |
| 2 | cat |
| 8 | dog |
| 56 | blue |
| 88 | grey |
| 87 | red |
+-------+-------------+
les sélections reviennent comme ci-dessous :
SELECT * FROM <this_table> ORDER BY id ASC LIMIT 0,5
+-------+-------------+
| id | value |
+-------+-------------+
| 1 | bob |
| 2 | cat |
| 8 | dog |
| 12 | fish |
| 56 | blue |
+-------+-------------+
et
SELECT * FROM <this_table> ORDER BY id ASC LIMIT 5,5
+-------+-------------+
| id | value |
+-------+-------------+
| 87 | red |
| 88 | grey |
| 112 | pink |
+-------+-------------+
notez le manque de lignes 9 et 10 c'est délibéré et montre que MySQL fonctionne comme prévu
accessoirement, vous devriez également envisager d'ajouter un index sur id
cela augmentera MASSIVEMENT la vitesse de ces sélections
ALTER TABLE <table_name> ADD INDEX `id` (`id`)