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 email 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 email 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 email 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

Saลพmite ovu objavu uz: