MySQL LIMIT & OFFSET med eksempler

Anonim

Hva er LIMIT søkeordet?

Begrensningsnøkkelordet brukes til å begrense antall rader som returneres i et søkeresultat.

Den kan brukes i forbindelse med kommandoene VELG, OPPDATER ELLER SLETT, BEGRENS syntaks for nøkkelord

Syntaksen for LIMIT-nøkkelordet er som følger

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

HER

  • "SELECT {fieldname (s) | *} FROM tableName (s)" er SELECT-setningen som inneholder feltene som vi ønsker å returnere i spørringen.
  • "[WHERE condition]" er valgfritt, 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 setter 0 da grensen ikke returnerer noen poster i spørringen. Å sette et tall si 5 vil returnere fem poster. Hvis postene i den angitte tabellen er mindre enn N, returneres alle postene fra den spurte 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 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it. NULL

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

Få en liste med ti (10) medlemmer bare fra databasen

La oss anta at vi ønsker å få en liste over de 10 første registrerte medlemmene fra Myflix-databasen. Vi bruker følgende skript for å oppnå det.

SELECT * FROM members LIMIT 10;

Å utføre 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 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it. 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 forespørselen vår, siden N i LIMIT-klausulen er større enn antall totale poster i tabellen vår.

Skriv om skriptet ovenfor som følger

SELECT * FROM members LIMIT 9;

Returnerer bare 9 rader i vårt resultatsett.

Bruker OFF SET i LIMIT-spørringen

Den OFF SET verdien er også oftest brukt sammen med LIMIT søkeord. OFF SET-verdien lar oss spesifisere hvilken rad som skal startes fra innhenting av data

La oss anta at vi ønsker å få et begrenset antall medlemmer fra midten av radene, vi kan bruke LIMIT-nøkkelordet sammen med forskyvningsverdien for å oppnå det. Skriptet vist nedenfor får data som starter den andre raden og begrenser resultatene til 2.

SELECT * FROM `members` LIMIT 1, 2;

Å utføre 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 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
Note that here OFFSET = 1 Hence row#2 is returned & Limit = 2, Hence only 2 records are returned

Når skal vi bruke LIMIT søkeordet?

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 langsomme lastetider. Hvordan skal vi implementere systemet som oppfyller slike brukerkrav? LIMIT-nøkkelordet kommer godt med i slike situasjoner. Vi ville være i stand til å begrense resultatene som returneres fra et spørsmål til 20 poster bare per side.

Sammendrag

  • LIMIT-nøkkelordet for brukes til å begrense antall rader som returneres fra et resultatsett.
  • LIMIT-tallet kan være et hvilket som helst tall fra null (0) som går oppover. Når null (0) er angitt som grense, returneres ingen rader fra resultatsettet.
  • OFF SET-verdien lar oss spesifisere hvilken rad som skal startes fra innhenting av data
  • Den kan brukes i forbindelse med kommandoene VELG, OPPDATER ELLER SLETT, BEGRENS syntaks for nøkkelord