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 | 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 | 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 | 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