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 se razvijamoping aplikacija koja se izvodi na myflixdb. Naลก dizajner sustava zamolio nas je da ograniฤimo broj zapisa prikazanih na stranici, recimo na 20 zapisa po stranici, kako bismo se suprotstavili sporom vremenu uฤitavanja. Kako implementirati sustav koji zadovoljava takve korisniฤke zahtjeve? Kljuฤna rijeฤ LIMIT dobro doฤe u takvim situacijama. Mogli bismo ograniฤiti rezultate vraฤene upitom 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
