MySQL LIMIT & OFFSET med eksempler

Hvad er søgeordet LIMIT?

Limit søgeordet bruges til at begrænse antallet af rækker, der returneres i et forespørgselsresultat.

Det kan bruges sammen med kommandoerne SELECT, UPDATE ELLER DELETE LIMIT nøgleordssyntaks

Syntaksen for søgeordet LIMIT er som følger

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

HER

  • "VÆLG {feltnavn(e) | *} FRA tabelnavn(e)" er SELECT erklæring indeholdende de felter, som vi gerne vil returnere i vores forespørgsel.
  • "[WHERE-tilstand]" er valgfri, men når den leveres, kan den bruges til at angive et filter på resultatsættet.
  • "LIMIT N" er nøgleordet og N er et vilkårligt tal, der starter fra 0, og at sætte 0, da grænsen ikke returnerer nogen poster i forespørgslen. Hvis du sætter et tal til at sige 5, returneres fem poster. Hvis posterne i den angivne tabel er mindre end N, returneres alle posterne 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 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 ovenstående skærmbillede, er kun to medlemmer blevet returneret.

Får 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 ville bruge 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 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

Bemærk, at kun 9 medlemmer er blevet returneret i vores forespørgsel, da N i LIMIT-sætningen 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

OFF SET værdi bruges også oftest sammen med søgeordet LIMIT. OFF SET-værdien giver os mulighed for at angive, hvilken række der skal starte med at hente data

Lad os antage, at vi ønsker at få et begrænset antal medlemmer fra midten af ​​rækkerne, vi kan bruge søgeordet LIMIT sammen med offsetværdien for at opnå det. Scriptet vist nedenfor får data fra 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 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

Hvornår skal vi bruge søgeordet LIMIT?

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 går vi om at implementere det system, der opfylder sådanne brugerkrav? Nøgleordet LIMIT er praktisk i sådanne situationer. Vi ville være i stand til at begrænse de resultater, der returneres 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-tallet kan være et hvilket som helst tal fra nul (0) og opad. Når nul (0) er angivet som grænse, returneres ingen rækker fra resultatsættet.
  • OFF SET-værdien giver os mulighed for at angive, hvilken række der skal starte med at hente data
  • Det kan bruges sammen med kommandoerne SELECT, UPDATE ELLER DELETE LIMIT nøgleordssyntaks