MySQL LIMIT & OFFSET met voorbeelden

Wat is het LIMIT-trefwoord?

Het sleutelwoord limit wordt gebruikt om het aantal geretourneerde rijen in een queryresultaat te beperken.

Het kan worden gebruikt in combinatie met de SELECT-, UPDATE- OF DELETE-opdrachten LIMIT-trefwoordsyntaxis

De syntaxis voor het trefwoord LIMIT is als volgt

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

HIER

  • “SELECTEER {veldnaam(en) | *} FROM tabelNaam(en)” is de SELECT-instructie met de velden die we in onze zoekopdracht willen retourneren.
  • “[WHERE-voorwaarde]” is optioneel, maar kan, indien meegeleverd, worden gebruikt om een ​​filter op de resultatenset op te geven.
  • “LIMIET N” is het sleutelwoord en N is een getal dat begint bij 0. Als u 0 als limiet instelt, worden er geen records in de query geretourneerd. Als u een getal bijvoorbeeld 5 invult, worden er vijf records geretourneerd. Als de records in de opgegeven tabel kleiner zijn dan N, worden alle records uit de opgevraagde tabel geretourneerd in de resultatenset.

Laten we naar een voorbeeld kijken –

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

Zoals je in de bovenstaande schermafbeelding kunt zien, zijn er slechts twee leden teruggekeerd.

Een lijst van tien (10) leden verkrijgen, uitsluitend uit de database

Stel dat we een lijst willen van de eerste 10 geregistreerde leden uit de Myflix-database. We zouden het volgende script gebruiken om dat te bereiken.

SELECT *  FROM members LIMIT 10;

Het uitvoeren van het bovenstaande script levert ons de onderstaande resultaten op

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

Houd er rekening mee dat er in onze query slechts 9 leden zijn geretourneerd, omdat N in de LIMIT-clausule groter is dan het totale aantal records in onze tabel.

Herschrijf het bovenstaande script als volgt

SELECT *  FROM members LIMIT 9;

Retourneert slechts 9 rijen in onze queryresultatenset.

Gebruik van de OFF SET in de LIMIT-query

Ocuco's Medewerkers UIT SET waarde wordt ook het vaakst gebruikt in combinatie met het trefwoord LIMIT. Met de OFF SET-waarde kunnen we specificeren welke rij we moeten starten bij het ophalen van gegevens

Laten we aannemen dat we een beperkt aantal leden willen hebben, beginnend in het midden van de rijen. We kunnen het trefwoord LIMIT samen met de offsetwaarde gebruiken om dat te bereiken. Het onderstaande script haalt gegevens op vanaf de tweede rij en beperkt de resultaten tot 2.

SELECT * FROM `members` LIMIT 1, 2;

Voer het bovenstaande script uit in MySQL workbench tegen myflixdb geeft de volgende resultaten.

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

Wanneer moeten we het trefwoord LIMIT gebruiken?

Stel dat we de applicatie ontwikkelen die draait op myflixdb. Onze systeemontwerper heeft ons gevraagd om het aantal records dat op een pagina wordt weergegeven te beperken tot bijvoorbeeld 20 records per pagina om langzame laadtijden tegen te gaan. Hoe implementeren we het systeem dat voldoet aan dergelijke gebruikersvereisten? Het trefwoord LIMIT is in dergelijke situaties handig. We zouden de resultaten van een query kunnen beperken tot slechts 20 records per pagina.

Samenvatting

  • Het LIMIT-trefwoord of wordt gebruikt om het aantal rijen te beperken dat uit een resultatenset wordt geretourneerd.
  • Het LIMIT-getal kan elk getal vanaf nul (0) zijn, oplopend. Wanneer nul (0) is opgegeven als limiet, worden er geen rijen geretourneerd uit de resultatenset.
  • Met de OFF SET-waarde kunnen we specificeren welke rij we moeten starten bij het ophalen van gegevens
  • Het kan worden gebruikt in combinatie met de SELECT-, UPDATE- OF DELETE-opdrachten LIMIT-trefwoordsyntaxis