MySQL LIMIT & OFFSET med eksempler

Anonim

Hvad er LIMIT nøgleordet?

Grænsenøgleordet bruges til at begrænse antallet af rækker, der returneres i et forespørgselsresultat.

Den kan bruges sammen med kommandoerne VÆLG, OPDATER ELLER SLET, BEGRÆNS nøgleordssyntaks

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

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

HER

  • "SELECT {fieldname (s) | *} FROM tableName (s)" er SELECT-sætningen, der indeholder de felter, som vi gerne vil returnere i vores forespørgsel.
  • "[WHERE condition]" er valgfri, men kan, når den leveres, bruges til at specificere et filter på resultatsættet.
  • "GRÆNSE N" er nøgleordet, og N er ethvert tal, der starter fra 0, hvilket sætter 0, da grænsen ikke returnerer nogen poster i forespørgslen. Hvis du sætter et tal, siger 5, returneres fem poster. Hvis posterne i den angivne tabel er mindre end N, returneres alle poster fra den forespurgte tabel i resultatsættet.

Lad os 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 ovenstående skærmbillede, er kun to medlemmer blevet returneret.

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

Lad os antage, at vi ønsker at få en liste over de første 10 registrerede medlemmer fra Myflix-databasen. Vi bruger følgende script til at opnå det.

SELECT * FROM members LIMIT 10;

Udførelse af ovenstående script giver os resultaterne 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

Bemærk, at kun 9 medlemmer er returneret i vores forespørgsel, da N i LIMIT-klausulen er større end antallet af samlede poster i vores tabel.

Omskrivning af ovenstående script som følger

SELECT * FROM members LIMIT 9;

Returnerer kun 9 rækker i vores forespørgselsresultatsæt.

Brug af OFF SET i LIMIT-forespørgslen

Den OFF SET værdi er også oftest bruges sammen med LIMIT søgeord. OFF SET-værdien giver os mulighed for at specificere, hvilken række der skal startes fra hentning af data

Lad os antage, at vi ønsker at få et begrænset antal medlemmer startende fra midten af ​​rækkerne, vi kan bruge nøgleordet LIMIT sammen med offsetværdien for at opnå det. Skriften vist nedenfor får data, der starter den anden række og begrænser resultaterne til 2.

SELECT * FROM `members` LIMIT 1, 2;

Udførelse af ovenstående script i MySQL workbench mod myflixdb giver 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

Hvornår skal vi bruge LIMIT nøgleordet?

Lad os antage, at vi udvikler applikationen, der kører oven på myflixdb. Vores systemdesigner har bedt os om at begrænse antallet af poster, der vises på en side, til at sige 20 poster pr. Side for at modvirke langsomme indlæsningstider. Hvordan skal vi implementere det system, der opfylder sådanne brugerkrav? Nøgleordet LIMIT er nyttigt i sådanne situationer. Vi ville være i stand til at begrænse resultaterne fra en forespørgsel til kun 20 poster pr. Side.

Resumé

  • Nøgleordet LIMIT bruges til at begrænse antallet af rækker, der returneres fra et resultatsæt.
  • LIMIT-nummeret kan være et hvilket som helst tal fra nul (0), der går opad. Når nul (0) er angivet som grænsen, returneres ingen rækker fra resultatsættet.
  • OFF SET-værdien giver os mulighed for at specificere, hvilken række der skal startes fra hentning af data
  • Den kan bruges sammen med kommandoerne VÆLG, OPDATER ELLER SLET, BEGRÆNS nøgleordssyntaks