MySQL LIMIT & OFFSET med eksempler

Hva er sรธkeordet LIMIT?

Limit-nรธkkelordet brukes til รฅ begrense antall rader som returneres i et spรธrringsresultat.

Den kan brukes sammen med SELECT, UPDATE OR DELETE kommandoene LIMIT nรธkkelordsyntaks

Syntaksen for nรธkkelordet LIMIT er som fรธlger

SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT  N;

HER

  • "VELG {feltnavn(e) | *} FRA tabellnavn(e)" er den SELECT-setning som inneholder feltene vi รธnsker รฅ returnere i sรธket vรฅrt.
  • ยซ[WHERE-tilstand]ยป er valgfri, men nรฅr den leveres, kan den brukes til รฅ spesifisere et filter pรฅ resultatsettet.
  • "LIMIT N" er nรธkkelordet og N er et hvilket som helst tall som starter fra 0, og รฅ sette 0 da grensen returnerer ingen poster i spรธrringen. Hvis du setter et tall som sier 5, vil du returnere fem poster. Hvis postene i den angitte tabellen er mindre enn N, returneres alle postene fra den forespurte tabellen i resultatsettet.

La oss se pรฅ et eksempel โ€“

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

Som du kan se fra skjermbildet ovenfor, har bare to medlemmer blitt returnert.

Fรฅ en liste over ti (10) medlemmer kun fra databasen

La oss anta at vi รธnsker รฅ fรฅ en liste over de fรธrste 10 registrerte medlemmene fra Myflix-databasen. Vi ville bruke fรธlgende skript for รฅ oppnรฅ det.

SELECT *  FROM members LIMIT 10;

Utfรธrelse av skriptet ovenfor gir oss resultatene vist nedenfor

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

Merk at bare 9 medlemmer har blitt returnert i sรธket vรฅrt siden N i LIMIT-klausulen er stรธrre enn antall totale poster i tabellen vรฅr.

Omskriving av skriptet ovenfor som fรธlger

SELECT *  FROM members LIMIT 9;

Returnerer bare 9 rader i vรฅrt sรธkeresultatsett.

Bruk av OFF SET i LIMIT-spรธrringen

Ocuco AV SET verdi brukes ogsรฅ oftest sammen med sรธkeordet LIMIT. OFF SET-verdien lar oss spesifisere hvilken rad som skal starte fra รฅ hente data

La oss anta at vi รธnsker รฅ fรฅ et begrenset antall medlemmer fra midten av radene, vi kan bruke sรธkeordet LIMIT sammen med offsetverdien for รฅ oppnรฅ det. Skriptet vist nedenfor henter data fra den andre raden og begrenser resultatene til 2.

SELECT * FROM `members` LIMIT 1, 2;

Utfรธrer skriptet ovenfor i MySQL arbeidsbenk mot myflixdb gir fรธlgende resultater.

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

Nรฅr bรธr vi bruke sรธkeordet LIMIT?

La oss anta at vi er i utviklingping applikasjonen som kjรธrer oppรฅ myflixdb. Systemdesigneren vรฅr har bedt oss om รฅ begrense antall poster som vises pรฅ en side til for eksempel 20 poster per side for รฅ motvirke treg lastetid. Hvordan implementerer vi et system som oppfyller slike brukerkrav? Nรธkkelordet LIMIT er nyttig i slike situasjoner. Vi ville kunne begrense resultatene som returneres fra en spรธrring til kun 20 poster per side.

Sammendrag

  • Nรธkkelordet LIMIT brukes til รฅ begrense antall rader som returneres fra et resultatsett.
  • LIMIT-tallet kan vรฆre et hvilket som helst tall fra null (0) og oppover. Nรฅr null (0) er spesifisert som grense, returneres ingen rader fra resultatsettet.
  • OFF SET-verdien lar oss spesifisere hvilken rad som skal starte fra รฅ hente data
  • Den kan brukes sammen med SELECT, UPDATE OR DELETE kommandoene LIMIT nรธkkelordsyntaks

Oppsummer dette innlegget med: