Oversigt :i denne tutorial lærer du, hvordan du bruger SQLite LIMIT klausul for at begrænse antallet af rækker, der returneres af en forespørgsel.
Introduktion til SQLite LIMIT klausul
LIMIT klausulen er en valgfri del af SELECT udmelding. Du bruger LIMIT klausul for at begrænse antallet af rækker, der returneres af forespørgslen.
For eksempel en SELECT erklæring kan returnere en million rækker. Men hvis du blot skal bruge de første 10 rækker i resultatsættet, kan du tilføje LIMIT klausul til SELECT sætning for at hente 10 rækker.
Det følgende illustrerer syntaksen for LIMIT klausul.
SELECT
column_list
FROM
table
LIMIT row_count;Code language: SQL (Structured Query Language) (sql)
row_count er et positivt heltal, der angiver antallet af returnerede rækker.
For eksempel for at få de første 10 rækker i tracks tabel, bruger du følgende sætning:
SELECT
trackId,
name
FROM
tracks
LIMIT 10;Code language: SQL (Structured Query Language) (sql) Prøv det
Hvis du vil have de første 10 rækker startende fra de 10 rækker i resultatsættet, bruger du OFFSET søgeord som følgende:
SELECT
column_list
FROM
table
LIMIT row_count OFFSET offset;Code language: SQL (Structured Query Language) (sql)
Eller du kan bruge følgende stenografiske syntaks for LIMIT OFFSET klausul:
SELECT
column_list
FROM
table
LIMIT offset, row_count;Code language: SQL (Structured Query Language) (sql)
For eksempel for at få 10 rækker startende fra de 11 rækker i tracks tabel, bruger du følgende sætning:
SELECT
trackId,
name
FROM
tracks
LIMIT 10 OFFSET 10;Code language: SQL (Structured Query Language) (sql) Prøv det
Du finder ofte anvendelser af OFFSET i webapplikationer til paginering af resultatsæt.
SQLite LIMIT og ORDER BY klausul
Du bør altid bruge LIMIT klausul med ORDER BY klausul. Fordi du ønsker at få et antal rækker i en specificeret rækkefølge, ikke i en uspecificeret rækkefølge.
ORDER BY klausulen vises før LIMIT klausul i SELECT udmelding. SQLite sorterer resultatsættet før det får antallet af rækker angivet i LIMIT klausul.
SELECT
column_list
FROM
table
ORDER BY column_1
LIMIT row_count;Code language: SQL (Structured Query Language) (sql) For at få de 10 største numre efter størrelse, bruger du f.eks. følgende forespørgsel:
SELECT
trackid,
name,
bytes
FROM
tracks
ORDER BY
bytes DESC
LIMIT 10;Code language: SQL (Structured Query Language) (sql) Prøv det
For at få de 5 korteste spor, sorterer du sporene efter længden angivet i millisekunders kolonne ved hjælp af ORDER BY klausul og få de første 5 rækker ved hjælp af LIMIT klausul.
SELECT
trackid,
name,
milliseconds
FROM
tracks
ORDER BY
milliseconds ASC
LIMIT 5;Code language: SQL (Structured Query Language) (sql) Prøv det
Få den n højeste og den laveste værdi
Du kan bruge ORDER BY og LIMIT klausuler for at få de n rækker med højeste eller laveste værdi. For eksempel vil du måske gerne vide det næstlængste spor, det tredjemindste spor osv.
For at gøre dette skal du bruge følgende trin:
- Brug først
ORDER BYfor at sortere resultatsættet i stigende rækkefølge, hvis du vil have den n laveste værdi, eller faldende rækkefølge, hvis du vil have den n højeste værdi. - For det andet skal du bruge
LIMIT OFFSETklausul for at få den n højeste eller den n laveste række.
Følgende sætning returnerer det næstlængste spor i tracks tabel.
SELECT
trackid,
name,
milliseconds
FROM
tracks
ORDER BY
milliseconds DESC
LIMIT 1 OFFSET 1;Code language: SQL (Structured Query Language) (sql) Prøv det
Følgende sætning får det tredjemindste spor på tracks tabel.
SELECT
trackid,
name,
bytes
FROM
tracks
ORDER BY
bytes
LIMIT 1 OFFSET 2;Code language: SQL (Structured Query Language) (sql) Prøv det
I denne øvelse har du lært, hvordan du bruger SQLite LIMIT klausul for at begrænse antallet af rækker, der returneres af forespørgslen.