Używamy cookies, żeby zwiększyć Twoje doświadczenia na stronie
CodeWorlds

OFFSET i stronicowanie

Sam

LIMIT
bierze zawsze pierwsze wiersze. Ale co, jeśli chcesz drugą stronę katalogu - kolejne pięć książek po tych pierwszych pięciu? Tu wkracza OFFSET.

OFFSET - przeskakiwanie wierszy

OFFSET
mówi, ile wierszy pominąć, zanim zaczniesz liczyć:

1SELECT tytul
2FROM ksiazki
3ORDER BY tytul ASC
4LIMIT 5 OFFSET 10;

Tu pomijamy 10 zwojów i bierzemy kolejne 5 (czyli pozycje 11-15). To podstawa stronicowania - dzielenia długiej listy na strony.

Strony katalogu

Wyobraź sobie katalog po 5 pozycji na stronę:

| Strona | LIMIT | OFFSET | |--------|-------|--------| | 1 | 5 | 0 | | 2 | 5 | 5 | | 3 | 5 | 10 |

Wzór jest prosty:

1-- OFFSET = (numer_strony - 1) * rozmiar_strony
2SELECT tytul FROM ksiazki ORDER BY tytul ASC LIMIT 5 OFFSET 5;

Powyższe pokaże drugą stronę (pomijamy pierwszych 5, bierzemy kolejnych 5).

Kolejność klauzul

OFFSET dopisujemy po LIMIT, na samym końcu zapytania. Pełna kolejność brzmi: SELECT → FROM → ORDER BY → LIMIT → OFFSET.

Dzięki stronicowaniu nawet najdłuższy katalog mieści się wygodnie na ekranie - strona po stronie, zwój po zwoju.

Przejdź do CodeWorlds