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 er udvikletping den applikation, der kรธrer oven pรฅ myflixdb. Vores systemdesigner har bedt os om at begrรฆnse antallet af poster, der vises pรฅ en side, til f.eks. 20 poster pr. side for at modvirke langsomme indlรฆsningstider. Hvordan implementerer vi et 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

Opsummer dette indlรฆg med: