Shrnutí :v tomto tutoriálu se naučíte používat SQLite LIMIT
klauzule k omezení počtu řádků vrácených dotazem.
Úvod do SQLite LIMIT
klauzule
LIMIT
klauzule je volitelná část SELECT
prohlášení. Používáte LIMIT
klauzule k omezení počtu řádků vrácených dotazem.
Například SELECT
výpis může vrátit jeden milion řádků. Pokud však potřebujete pouze prvních 10 řádků v sadě výsledků, můžete přidat LIMIT
klauzule do SELECT
příkaz k načtení 10 řádků.
Následující text ilustruje syntaxi LIMIT
doložka.
SELECT
column_list
FROM
table
LIMIT row_count;
Code language: SQL (Structured Query Language) (sql)
row_count
je kladné celé číslo, které určuje počet vrácených řádků.
Chcete-li například získat prvních 10 řádků ve tracks
tabulky, použijete následující příkaz:
SELECT
trackId,
name
FROM
tracks
LIMIT 10;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Pokud chcete získat prvních 10 řádků počínaje 10 řádkem sady výsledků, použijte OFFSET
klíčové slovo takto:
SELECT
column_list
FROM
table
LIMIT row_count OFFSET offset;
Code language: SQL (Structured Query Language) (sql)
Nebo můžete použít následující zkrácenou syntaxi LIMIT OFFSET
klauzule:
SELECT
column_list
FROM
table
LIMIT offset, row_count;
Code language: SQL (Structured Query Language) (sql)
Chcete-li například získat 10 řádků počínaje 11. řádkem v tracks
tabulky, použijete následující příkaz:
SELECT
trackId,
name
FROM
tracks
LIMIT 10 OFFSET 10;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Často najdete použití OFFSET
ve webových aplikacích pro stránkování sad výsledků.
SQLite LIMIT
a ORDER BY
klauzule
Vždy byste měli používat LIMIT
klauzule s ORDER BY
doložka. Protože chcete získat počet řádků v určeném pořadí, nikoli v nespecifikovaném pořadí.
ORDER BY
klauzule se objeví před LIMIT
klauzule v SELECT
prohlášení. SQLite seřadí sadu výsledků, než získá počet řádků zadaný v LIMIT
doložka.
SELECT
column_list
FROM
table
ORDER BY column_1
LIMIT row_count;
Code language: SQL (Structured Query Language) (sql)
Chcete-li například získat 10 největších skladeb podle velikosti, použijte následující dotaz:
SELECT
trackid,
name,
bytes
FROM
tracks
ORDER BY
bytes DESC
LIMIT 10;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Chcete-li získat 5 nejkratších stop, seřadíte stopy podle délky určené sloupcem milisekund pomocí ORDER BY
klauzuli a získejte prvních 5 řádků pomocí LIMIT
doložka.
SELECT
trackid,
name,
milliseconds
FROM
tracks
ORDER BY
milliseconds ASC
LIMIT 5;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Získání nejvyšší a nejnižší hodnoty n
Můžete použít ORDER BY
a LIMIT
klauzule k získání n řádků s nejvyšší nebo nejnižší hodnotou. Můžete například chtít znát druhou nejdelší stopu, třetí nejmenší stopu atd.
Chcete-li to provést, použijte následující kroky:
- Nejprve použijte
ORDER BY
seřadit sadu výsledků vzestupně v případě, že chcete získat n nejnižší hodnotu, nebo sestupně, pokud chcete získat n nejvyšší hodnotu. - Zadruhé použijte
LIMIT OFFSET
klauzule k získání n nejvyššího nebo n nejnižšího řádku.
Následující příkaz vrátí druhou nejdelší stopu v tracks
tabulka.
SELECT
trackid,
name,
milliseconds
FROM
tracks
ORDER BY
milliseconds DESC
LIMIT 1 OFFSET 1;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Následující příkaz získá třetí nejmenší stopu na tracks
tabulka.
SELECT
trackid,
name,
bytes
FROM
tracks
ORDER BY
bytes
LIMIT 1 OFFSET 2;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
V tomto tutoriálu jste se naučili používat SQLite LIMIT
klauzule k omezení počtu řádků vrácených dotazem.