första hundra
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 0, 100
nästa hundra
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 100, 100
du är väldigt observant på att lägga beställningen innan
GRÄNSUTTALANDET FÖRKLADE: LIMIT satsen är INTE en WHERE klausul. Den väljer inte med id inte heller efter några kriterier, (där where satsen gör det) Istället limit klausul säkerställer helt enkelt att du får tillbaka en del av block av resultat som är en delmängd av "allt". Därför är det viktigt att nämna en order by varje gång, så att varje efterföljande samtal ger dig rätt del av datablocket i ordning, och du kan "nästa", "nästa", "nästa" genom dem
EG:för den oordnade tabellen this_table :
+-------+-------------+
| id | value |
+-------+-------------+
| 1 | bob |
| 12 | fish |
| 112 | pink |
| 2 | cat |
| 8 | dog |
| 56 | blue |
| 88 | grey |
| 87 | red |
+-------+-------------+
valen returnerar enligt nedan:
SELECT * FROM <this_table> ORDER BY id ASC LIMIT 0,5
+-------+-------------+
| id | value |
+-------+-------------+
| 1 | bob |
| 2 | cat |
| 8 | dog |
| 12 | fish |
| 56 | blue |
+-------+-------------+
och
SELECT * FROM <this_table> ORDER BY id ASC LIMIT 5,5
+-------+-------------+
| id | value |
+-------+-------------+
| 87 | red |
| 88 | grey |
| 112 | pink |
+-------+-------------+
märk avsaknaden av raderna 9 och 10, detta är avsiktligt och visar att MySQL fungerar som avsett
för övrigt bör du också titta på att lägga till ett index på id detta kommer att öka hastigheten för dessa val MASSIVT
ALTER TABLE <table_name> ADD INDEX `id` (`id`)