ersten hundert
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 0, 100
nächsten hundert
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 100, 100
Sie sind sehr aufmerksam, wenn es darum geht, die Bestellung aufzugeben
DIE GRENZWERTE ERKLÄRT: Das LIMIT
-Anweisung ist KEIN WHERE
Klausel. Es wird nicht nach id
ausgewählt noch nach irgendwelchen Kriterien (dort where
Klausel tut das) Stattdessen das limit
-Klausel stellt einfach sicher, dass Sie einen Teil des block
zurückgeben von Ergebnissen, die eine Teilmenge von "alles" sind. Daher ist es wichtig, einen order by
zu erwähnen jedes Mal, so dass jeder nachfolgende Aufruf Ihnen den richtigen Teil des Datenblocks in der richtigen Reihenfolge liefert, und Sie können durch sie 'weiter', 'weiter', 'weiter' gehen
ZB:für die ungeordnete Tabelle this_table
:
+-------+-------------+
| id | value |
+-------+-------------+
| 1 | bob |
| 12 | fish |
| 112 | pink |
| 2 | cat |
| 8 | dog |
| 56 | blue |
| 88 | grey |
| 87 | red |
+-------+-------------+
die Auswahlen kehren wie folgt zurück:
SELECT * FROM <this_table> ORDER BY id ASC LIMIT 0,5
+-------+-------------+
| id | value |
+-------+-------------+
| 1 | bob |
| 2 | cat |
| 8 | dog |
| 12 | fish |
| 56 | blue |
+-------+-------------+
und
SELECT * FROM <this_table> ORDER BY id ASC LIMIT 5,5
+-------+-------------+
| id | value |
+-------+-------------+
| 87 | red |
| 88 | grey |
| 112 | pink |
+-------+-------------+
Beachten Sie das Fehlen der Zeilen 9 und 10. Dies ist absichtlich und zeigt, dass MySQL wie beabsichtigt funktioniert
Übrigens sollten Sie auch einen Index für id
hinzufügen dies wird die Geschwindigkeit dieser Auswahlen massiv erhöhen
ALTER TABLE <table_name> ADD INDEX `id` (`id`)