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 BYseř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 OFFSETklauzule 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.