MySQL LIMIT & OFFSET met voorbeelden

Anonim

Wat is het LIMIT-zoekwoord?

Het trefwoord limit wordt gebruikt om het aantal rijen te beperken dat in een queryresultaat wordt geretourneerd.

Het kan gebruikt worden in combinatie met de SELECT, UPDATE OF DELETE commando's LIMIT trefwoord syntaxis

De syntaxis voor het trefwoord LIMIT is als volgt

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

HIER

  • "SELECT {fieldname (s) | *} FROM tableName (s)" is de SELECT-instructie met de velden die we willen retourneren in onze query.
  • "[WHERE condition]" is optioneel, maar kan, indien geleverd, worden gebruikt om een ​​filter op de resultatenset te specificeren.
  • "LIMIT N" is het sleutelwoord en N is elk getal beginnend bij 0, waarbij 0 wordt ingevoerd omdat de limiet geen records in de query retourneert. Als u een nummer invoert, zeg 5, worden 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 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

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

Alleen een lijst van tien (10) leden uit de database halen

Stel dat we een lijst willen krijgen 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 geeft ons de onderstaande resultaten

 
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

Merk op dat er slechts 9 leden zijn geretourneerd in onze zoekopdracht, aangezien 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 set met zoekresultaten.

Met behulp van de OFF SET in de LIMIT-query

De OFF SET- waarde wordt ook het vaakst gebruikt in combinatie met het LIMIT-trefwoord. Met de OFF SET-waarde kunnen we specificeren welke rij moet beginnen met het ophalen van gegevens

Stel dat we een beperkt aantal leden willen hebben vanaf het midden van de rijen, we kunnen het LIMIT-trefwoord samen met de offset-waarde 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;

Het uitvoeren van het bovenstaande script in MySQL-workbench tegen de 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 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

Wanneer moeten we het trefwoord LIMIT gebruiken?

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

Overzicht

  • Het trefwoord LIMIT van wordt gebruikt om het aantal rijen te beperken dat wordt geretourneerd door een resultaatset.
  • Het LIMIT-nummer kan elk nummer zijn vanaf nul (0) naar boven. Wanneer nul (0) is opgegeven als de limiet, worden er geen rijen geretourneerd uit de resultatenset.
  • Met de OFF SET-waarde kunnen we specificeren welke rij moet beginnen met het ophalen van gegevens
  • Het kan gebruikt worden in combinatie met de SELECT, UPDATE OF DELETE commando's LIMIT trefwoord syntaxis