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
0jako 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.