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 utvikler applikasjonen som kjører på toppen av myflixdb. Systemdesigneren vår har bedt oss om å begrense antall poster som vises på en side til å si 20 poster per side for å motvirke trege lastetider. Hvordan går vi frem for å implementere systemet som oppfyller slike brukerkrav? Nøkkelordet LIMIT kommer godt med i slike situasjoner. Vi vil kunne begrense resultatene som returneres fra et søk til 20 poster per side.
Oppsummering
- 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