primeira centena
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 0, 100
próxima centena
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 100, 100
você é muito observador em colocar o pedido em
A DECLARAÇÃO DE LIMITE EXPLICADA: O
LIMIT
declaração NÃO é um WHERE
cláusula. Não seleciona por id
nem de fato por qualquer critério, (há where
cláusula faz isso) Em vez disso, o limit
cláusula simplesmente garante que você receba uma parte do block
de resultados que são subconjunto de "tudo". Por isso é importante mencionar um order by
cada vez, para que cada chamada subsequente forneça a parte correta do bloco de dados em ordem, e você pode 'próximo', 'próximo', 'próximo' através deles EG:para a tabela desordenada
this_table
:+-------+-------------+
| id | value |
+-------+-------------+
| 1 | bob |
| 12 | fish |
| 112 | pink |
| 2 | cat |
| 8 | dog |
| 56 | blue |
| 88 | grey |
| 87 | red |
+-------+-------------+
os selects retornam conforme abaixo:
SELECT * FROM <this_table> ORDER BY id ASC LIMIT 0,5
+-------+-------------+
| id | value |
+-------+-------------+
| 1 | bob |
| 2 | cat |
| 8 | dog |
| 12 | fish |
| 56 | blue |
+-------+-------------+
e
SELECT * FROM <this_table> ORDER BY id ASC LIMIT 5,5
+-------+-------------+
| id | value |
+-------+-------------+
| 87 | red |
| 88 | grey |
| 112 | pink |
+-------+-------------+
observe a falta das linhas 9 e 10, isso é deliberado e mostra o MySQL funcionando conforme o esperado
aliás, você também deve adicionar um índice em
id
isso aumentará MASSIVAMENTE a velocidade dessas seleções ALTER TABLE <table_name> ADD INDEX `id` (`id`)