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