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 BY
for 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 OFFSET
klausul 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.