první sto
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 0, 100
další sto
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 100, 100
jste velmi pozorní při zadávání objednávky do
VYSVĚTLENÍ LIMITNÍHO PROHLÁŠENÍ: LIMIT
příkaz NENÍ WHERE
doložka. Nevybírá podle id
ani ve skutečnosti podle žádných kritérií (tam where
klauzule to dělá) Místo toho limit
klauzule jednoduše zajistí, že vám bude vrácena část block
výsledků, které jsou podmnožinou „všeho“. Proto je důležité zmínit order by
pokaždé, takže každý další hovor vám poskytne správný kus datového bloku v pořadí a můžete přes ně „další“, „další“, „další“
EG:pro neuspořádanou tabulku this_table
:
+-------+-------------+
| id | value |
+-------+-------------+
| 1 | bob |
| 12 | fish |
| 112 | pink |
| 2 | cat |
| 8 | dog |
| 56 | blue |
| 88 | grey |
| 87 | red |
+-------+-------------+
výběry se vrátí následovně:
SELECT * FROM <this_table> ORDER BY id ASC LIMIT 0,5
+-------+-------------+
| id | value |
+-------+-------------+
| 1 | bob |
| 2 | cat |
| 8 | dog |
| 12 | fish |
| 56 | blue |
+-------+-------------+
a
SELECT * FROM <this_table> ORDER BY id ASC LIMIT 5,5
+-------+-------------+
| id | value |
+-------+-------------+
| 87 | red |
| 88 | grey |
| 112 | pink |
+-------+-------------+
všimněte si, že chybí řádky 9 a 10, je to záměrné a ukazuje to, že MySQL funguje tak, jak bylo zamýšleno
mimochodem byste se měli také podívat na přidání indexu na id
tím se MASIVNĚ zvýší rychlost těchto voleb
ALTER TABLE <table_name> ADD INDEX `id` (`id`)