primi cento
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 0, 100
prossimi cento
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 100, 100
sei molto attento a mettere l'ordine entro
SPIEGAZIONE DELLA DICHIARAZIONE LIMITE: Il LIMIT
l'istruzione NON è un WHERE
clausola. Non seleziona tramite id
né in effetti con alcun criterio, (c'è where
clausola lo fa) Invece il limit
La clausola assicura semplicemente che ti venga restituita una parte del block
di risultati che sono sottoinsiemi di "tutto". Ecco perché è importante menzionare un order by
ogni volta, in modo che ogni chiamata successiva ti fornisca il pezzo corretto del blocco dati in ordine, e tu possa 'next', 'next', 'next' attraverso di essi
EG:per la tabella disordinata this_table
:
+-------+-------------+
| id | value |
+-------+-------------+
| 1 | bob |
| 12 | fish |
| 112 | pink |
| 2 | cat |
| 8 | dog |
| 56 | blue |
| 88 | grey |
| 87 | red |
+-------+-------------+
le selezioni ritornano come di seguito:
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 |
+-------+-------------+
nota la mancanza delle righe 9 e 10, questo è intenzionale e mostra che MySQL funziona come previsto
per inciso dovresti anche cercare di aggiungere un indice su id
questo aumenterà MASSIVAMENTE la velocità di queste selezioni
ALTER TABLE <table_name> ADD INDEX `id` (`id`)