MySQL LIMIT & OFFSET s primjerima
Što je ključna riječ LIMIT?
Ključna riječ limit koristi se za ograničavanje broja redaka vraćenih u rezultatu upita.
Može se koristiti u kombinaciji s naredbama SELECT, UPDATE OR DELETE sintaksom ključne riječi LIMIT
Sintaksa za ključnu riječ LIMIT je sljedeća
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
OVDJE
- “SELECT {fieldname(s) | *} FROM tableName(s)” je SELECT izraz koji sadrži polja koja želimo vratiti u našem upitu.
- “[WHERE uvjet]” nije obavezan, ali kada se isporuči, može se koristiti za određivanje filtra na skupu rezultata.
- “OGRANIČENJE N” je ključna riječ i N je bilo koji broj počevši od 0, stavljanje 0 jer ograničenje ne vraća nijedan zapis u upitu. Stavljanje broja, recimo 5, vratit će pet zapisa. Ako su zapisi u navedenoj tablici manji od N, tada se svi zapisi iz upitane tablice vraćaju u skup rezultata.
Pogledajmo primjer –
SELECT * FROM members LIMIT 2;
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
---|---|---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | NULL | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm | NULL |
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | jj@fstreet.com | NULL |
Kao što možete vidjeti na gornjoj snimci zaslona, samo su dva člana vraćena.
Dobivanje popisa od deset (10) članova samo iz baze podataka
Pretpostavimo da želimo dobiti popis prvih 10 registriranih članova iz Myflix baze podataka. Koristili bismo sljedeću skriptu da to postignemo.
SELECT * FROM members LIMIT 10;
Izvršavanje gornje skripte daje nam rezultate prikazane u nastavku
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
---|---|---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | NULL | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm | NULL |
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | jj@fstreet.com | NULL |
3 | Robert Phil | Male | 12-07-1989 | NULL | 3rd Street 34 | NULL | 12345 | rm@tstreet.com | NULL |
4 | Gloria Williams | Female | 14-02-1984 | NULL | 2nd Street 23 | NULL | NULL | NULL | NULL |
5 | Leonard Hofstadter | Male | NULL | NULL | Woodcrest | NULL | 845738767 | NULL | NULL |
6 | Sheldon Cooper | Male | NULL | NULL | Woodcrest | NULL | 976736763 | NULL | NULL |
7 | Rajesh Koothrappali | Male | NULL | NULL | Woodcrest | NULL | 938867763 | NULL | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | NULL | Woodcrest | NULL | 987636553 | NULL | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | NULL | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me | NULL |
Imajte na umu da je u našem upitu vraćeno samo 9 članova jer je N u klauzuli LIMIT veći od ukupnog broja zapisa u našoj tablici.
Ponovno pisanje gornje skripte na sljedeći način
SELECT * FROM members LIMIT 9;
Vraća samo 9 redaka u našem skupu rezultata upita.
Korištenje OFF SET u upitu LIMIT
The ISKLJUČENO vrijednost se također najčešće koristi zajedno s ključnom riječi LIMIT. Vrijednost OFF SET omogućuje nam da odredimo koji redak započeti s dohvaćanjem podataka
Pretpostavimo da želimo dobiti ograničeni broj članova počevši od sredine redaka, možemo koristiti ključnu riječ LIMIT zajedno s vrijednošću pomaka da to postignemo. Skripta prikazana u nastavku dobiva podatke počevši od drugog retka i ograničava rezultate na 2.
SELECT * FROM `members` LIMIT 1, 2;
Izvršavanje gornje skripte u MySQL workbench u odnosu na myflixdb daje sljedeće rezultate.
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
---|---|---|---|---|---|---|---|---|---|
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | jj@fstreet.com | NULL |
3 | Robert Phil | Male | 12-07-1989 | NULL | 3rd Street 34 | NULL | 12345 | rm@tstreet.com | NULL |
Note that here OFFSET = 1 Hence row#2 is returned & Limit = 2, Hence only 2 records are returned
Kada bismo trebali koristiti ključnu riječ LIMIT?
Pretpostavimo da razvijamo aplikaciju koja radi povrh myflixdb-a. Naš dizajner sustava zamolio nas je da ograničimo broj zapisa prikazanih na stranici na recimo 20 zapisa po stranici kako bismo spriječili sporo učitavanje. Kako ćemo implementirati sustav koji zadovoljava takve zahtjeve korisnika? Ključna riječ LIMIT dobro dođe u takvim situacijama. Mogli bismo ograničiti rezultate vraćene iz upita na samo 20 zapisa po stranici.
rezime
- Ključna riječ LIMIT koristi se za ograničavanje broja redaka vraćenih iz skupa rezultata.
- Broj LIMIT može biti bilo koji broj od nule (0) naviše. Kada je nula (0) navedena kao granica, nijedan redak se ne vraća iz skupa rezultata.
- Vrijednost OFF SET omogućuje nam da odredimo koji redak započeti s dohvaćanjem podataka
- Može se koristiti u kombinaciji s naredbama SELECT, UPDATE OR DELETE sintaksom ključne riječi LIMIT