MySQL
Limit i przesunięcie
Szukaj…
Składnia
- WYBIERZ kolumna_1 [, kolumna_2]
Z tabeli_1
ZAMÓW PRZEZ kolumnę_zamówienia
LIMIT row_count [PRZESUNIĘCIE row_offset] - WYBIERZ kolumna_1 [, kolumna_2]
Z tabeli_1
ZAMÓW PRZEZ kolumnę_zamówienia
LIMIT [liczba_wierszy,] liczba_wierszy
Uwagi
„Limit” może oznaczać „maksymalną liczbę wierszy w tabeli”.
„Przesunięcie” oznacza wybór z numeru row
(nie mylić z wartością klucza głównego lub dowolną wartością danych pola)
Relacja limitu i przesunięcia
Biorąc pod uwagę następującą tabelę users
:
ID | Nazwa Użytkownika |
---|---|
1 | Użytkownik 1 |
2) | Użytkownik 2 |
3) | Użytkownik 3 |
4 | Użytkownik 4 |
5 | Użytkownik 5 |
Aby ograniczyć liczbę wierszy w zestawie wyników zapytania SELECT
, klauzula LIMIT
może być używana razem z jedną lub dwiema dodatnimi liczbami całkowitymi jako argumentami (łącznie z zero).
Klauzula LIMIT
z jednym argumentem
Gdy użyty zostanie jeden argument, zestaw wyników zostanie ograniczony tylko do liczby określonej w następujący sposób:
SELECT * FROM users ORDER BY id ASC LIMIT 2
ID | Nazwa Użytkownika |
---|---|
1 | Użytkownik 1 |
2) | Użytkownik 2 |
Jeśli wartość argumentu wynosi 0
, zestaw wyników będzie pusty.
Zauważ również, że klauzula ORDER BY
może być ważna w celu określenia pierwszych wierszy zestawu wyników, które zostaną przedstawione (przy zamawianiu według innej kolumny).
Klauzula LIMIT
z dwoma argumentami
Gdy dwa argumenty są używane w klauzuli LIMIT
:
- pierwszy argument reprezentuje wiersz, z którego będą prezentowane wiersze zestawu wyników - liczba ta jest często wymieniana jako przesunięcie , ponieważ reprezentuje wiersz poprzedzający początkowy wiersz ograniczonego zestawu wyników. Pozwala to argumentowi na otrzymanie
0
jako wartości, a tym samym na uwzględnienie pierwszego wiersza nieograniczonego zestawu wyników. - drugi argument określa maksymalną liczbę wierszy do zwrócenia w zestawie wyników (podobnie jak w przykładzie z jednym argumentem).
Dlatego zapytanie:
SELECT * FROM users ORDER BY id ASC LIMIT 2, 3
Przedstawia następujący zestaw wyników:
ID | Nazwa Użytkownika |
---|---|
3) | Użytkownik 3 |
4 | Użytkownik 4 |
5 | Użytkownik 5 |
Zauważ, że gdy argument przesunięcia wynosi 0
, zestaw wyników będzie równoważny klauzuli LIMIT
z jednym argumentem. Oznacza to, że następujące 2 zapytania:
SELECT * FROM users ORDER BY id ASC LIMIT 0, 2
SELECT * FROM users ORDER BY id ASC LIMIT 2
Utwórz ten sam zestaw wyników:
ID | Nazwa Użytkownika |
---|---|
1 | Użytkownik 1 |
2) | Użytkownik 2 |
OFFSET
kluczowe OFFSET
: alternatywna składnia
Alternatywna składnia klauzuli LIMIT
z dwoma argumentami polega na użyciu słowa kluczowego OFFSET
po pierwszym argumencie w następujący sposób:
SELECT * FROM users ORDER BY id ASC LIMIT 2 OFFSET 3
To zapytanie zwróci następujący zestaw wyników:
ID | Nazwa Użytkownika |
---|---|
3) | Użytkownik 3 |
4 | Użytkownik 4 |
Zauważ, że w tej alternatywnej składni argumenty zmieniają swoje pozycje:
pierwszy argument reprezentuje liczbę wierszy do zwrócenia w zestawie wyników;
drugi argument reprezentuje przesunięcie.