Резюме :в този урок ще научите как да използвате SQLite LIMIT
клауза за ограничаване на броя на редовете, върнати от заявка.
Въведение в SQLite LIMIT
клауза
LIMIT
Клаузата е незадължителна част от SELECT
изявление. Използвате LIMIT
клауза за ограничаване на броя на редовете, върнати от заявката.
Например SELECT
изявлението може да върне един милион реда. Въпреки това, ако имате нужда само от първите 10 реда в набора от резултати, можете да добавите LIMIT
клауза към SELECT
изявление за извличане на 10 реда.
Следното илюстрира синтаксиса на LIMIT
клауза.
SELECT
column_list
FROM
table
LIMIT row_count;
Code language: SQL (Structured Query Language) (sql)
row_count
е положително цяло число, което определя броя на върнатите редове.
Например, за да получите първите 10 реда в tracks
таблица, използвате следния израз:
SELECT
trackId,
name
FROM
tracks
LIMIT 10;
Code language: SQL (Structured Query Language) (sql)
Опитайте го
Ако искате да получите първите 10 реда, започвайки от 10-ия ред на набора от резултати, използвайте OFFSET
ключова дума, както следва:
SELECT
column_list
FROM
table
LIMIT row_count OFFSET offset;
Code language: SQL (Structured Query Language) (sql)
Или можете да използвате следния съкратен синтаксис на LIMIT OFFSET
клауза:
SELECT
column_list
FROM
table
LIMIT offset, row_count;
Code language: SQL (Structured Query Language) (sql)
Например, за да получите 10 реда, започващи от 11 ред в tracks
таблица, използвате следния израз:
SELECT
trackId,
name
FROM
tracks
LIMIT 10 OFFSET 10;
Code language: SQL (Structured Query Language) (sql)
Опитайте го
Често срещате употребите на OFFSET
в уеб приложения за пагиниране на набори от резултати.
SQLite LIMIT
и ORDER BY
клауза
Винаги трябва да използвате LIMIT
клауза с ORDER BY
клауза. Защото искате да получите определен брой редове в определен ред, а не в неопределен ред.
ORDER BY
клаузата се появява преди LIMIT
клауза в SELECT
изявление. SQLite сортира резултатния набор, преди да получи броя на редовете, посочени в LIMIT
клауза.
SELECT
column_list
FROM
table
ORDER BY column_1
LIMIT row_count;
Code language: SQL (Structured Query Language) (sql)
Например, за да получите първите 10 най-големи песни по размер, използвате следната заявка:
SELECT
trackid,
name,
bytes
FROM
tracks
ORDER BY
bytes DESC
LIMIT 10;
Code language: SQL (Structured Query Language) (sql)
Опитайте го
За да получите 5-те най-къси песни, сортирате песните по дължината, определена от колона милисекунди, като използвате ORDER BY
клауза и вземете първите 5 реда с помощта на LIMIT
клауза.
SELECT
trackid,
name,
milliseconds
FROM
tracks
ORDER BY
milliseconds ASC
LIMIT 5;
Code language: SQL (Structured Query Language) (sql)
Опитайте го
Получаване на n най-висока и най-ниска стойност
Можете да използвате ORDER BY
и LIMIT
клаузи, за да получите n реда с най-висока или най-ниска стойност. Например, може да искате да знаете втората най-дълга песен, третата най-малка песен и т.н.
За да направите това, използвайте следните стъпки:
- Първо, използвайте
ORDER BY
за да сортирате резултатния набор във възходящ ред, в случай че искате да получите най-ниската стойност n, или низходящ, ако искате да получите най-високата стойност n. - Второ, използвайте
LIMIT OFFSET
клауза, за да получите n най-висок или n най-нисък ред.
Следващият оператор връща втория най-дълъг запис в tracks
таблица.
SELECT
trackid,
name,
milliseconds
FROM
tracks
ORDER BY
milliseconds DESC
LIMIT 1 OFFSET 1;
Code language: SQL (Structured Query Language) (sql)
Опитайте го
Следното изявление получава третата най-малка песен в tracks
таблица.
SELECT
trackid,
name,
bytes
FROM
tracks
ORDER BY
bytes
LIMIT 1 OFFSET 2;
Code language: SQL (Structured Query Language) (sql)
Опитайте го
В този урок научихте как да използвате SQLite LIMIT
клауза за ограничаване на броя на редовете, върнати от заявката.