primeros cien
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 0, 100
próximos cien
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 100, 100
eres muy observador al poner el orden por en
EXPLICACIÓN DE LA DECLARACIÓN DE LÍMITES: El LIMIT
declaración NO es un WHERE
cláusula. No selecciona por id
ni de hecho por ningún criterio, (hay where
hace eso) En lugar del limit
la cláusula simplemente asegura que se le devuelva una parte del block
de resultados que son un subconjunto de "todo". Por eso es importante mencionar un order by
cada vez, para que cada llamada subsiguiente le proporcione la parte correcta del bloque de datos en orden, y puede 'siguiente', 'siguiente', 'siguiente' a través de ellos
EG:para la tabla desordenada this_table
:
+-------+-------------+
| id | value |
+-------+-------------+
| 1 | bob |
| 12 | fish |
| 112 | pink |
| 2 | cat |
| 8 | dog |
| 56 | blue |
| 88 | grey |
| 87 | red |
+-------+-------------+
las selecciones regresan de la siguiente manera:
SELECT * FROM <this_table> ORDER BY id ASC LIMIT 0,5
+-------+-------------+
| id | value |
+-------+-------------+
| 1 | bob |
| 2 | cat |
| 8 | dog |
| 12 | fish |
| 56 | blue |
+-------+-------------+
y
SELECT * FROM <this_table> ORDER BY id ASC LIMIT 5,5
+-------+-------------+
| id | value |
+-------+-------------+
| 87 | red |
| 88 | grey |
| 112 | pink |
+-------+-------------+
observe la falta de las filas 9 y 10, esto es deliberado y muestra que MySQL funciona según lo previsto
por cierto, también debería considerar agregar un índice en id
esto aumentará MASIVAMENTE la velocidad de estas selecciones
ALTER TABLE <table_name> ADD INDEX `id` (`id`)