MySQL LIMIT & OFFSET med exempel

Vad är nyckelordet LIMIT?

Nyckelordet limit används för att begränsa antalet rader som returneras i ett frågeresultat.

Det kan användas tillsammans med kommandona SELECT, UPDATE ELLER DELETE LIMIT nyckelordssyntax

Syntaxen för nyckelordet LIMIT är följande

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

HÄR

  • "VÄLJ {fältnamn(n) | *} FRÅN tabellnamn" är SELECT-sats som innehåller de fält som vi skulle vilja returnera i vår förfrågan.
  • "[WHERE skick]" är valfritt men när det medföljer kan det användas för att specificera ett filter på resultatuppsättningen.
  • "LIMIT N" är nyckelordet och N är valfritt tal som börjar från 0, att sätta 0 eftersom gränsen inte returnerar några poster i frågan. Om du sätter en siffra som säger 5 kommer att returnera fem poster. Om posterna i den angivna tabellen är mindre än N, returneras alla poster från den efterfrågade tabellen i resultatuppsättningen.

Låt oss titta på ett exempel -

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 från skärmdumpen ovan har endast två medlemmar returnerats.

Få en lista med tio (10) medlemmar endast från databasen

Låt oss anta att vi vill få en lista över de första 10 registrerade medlemmarna från Myflix-databasen. Vi skulle använda följande skript för att uppnå det.

SELECT *  FROM members LIMIT 10;

Att köra skriptet ovan ger oss resultaten som visas nedan

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

Observera att endast 9 medlemmar har returnerats i vår fråga eftersom N i LIMIT-satsen är större än antalet totala poster i vår tabell.

Omskrivning av skriptet ovan enligt följande

SELECT *  FROM members LIMIT 9;

Returnerar endast 9 rader i vår frågeresultatuppsättning.

Använd OFF SET i LIMIT-frågan

Ocuco-landskapet AV SET värde används också oftast tillsammans med nyckelordet LIMIT. OFF SET-värdet låter oss ange vilken rad som ska börja från att hämta data

Låt oss anta att vi vill få ett begränsat antal medlemmar från mitten av raderna, vi kan använda nyckelordet LIMIT tillsammans med offsetvärdet för att uppnå det. Skriptet som visas nedan hämtar data från den andra raden och begränsar resultaten till 2.

SELECT * FROM `members` LIMIT 1, 2;

Exekvera skriptet ovan i MySQL arbetsbänk mot myflixdb ger följande resultat.

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

När ska vi använda nyckelordet LIMIT?

Låt oss anta att vi utvecklar applikationen som körs ovanpå myflixdb. Vår systemdesigner har bett oss att begränsa antalet poster som visas på en sida till att säga 20 poster per sida för att motverka långsamma laddningstider. Hur går vi tillväga för att implementera systemet som uppfyller sådana användarkrav? Nyckelordet LIMIT kommer väl till pass i sådana situationer. Vi skulle kunna begränsa resultaten som returneras från en fråga till endast 20 poster per sida.

Sammanfattning

  • Nyckelordet LIMIT av används för att begränsa antalet rader som returneras från en resultatuppsättning.
  • LIMIT-numret kan vara vilket tal som helst från noll (0) och uppåt. När noll (0) anges som gräns, returneras inga rader från resultatuppsättningen.
  • OFF SET-värdet låter oss ange vilken rad som ska börja från att hämta data
  • Det kan användas tillsammans med kommandona SELECT, UPDATE ELLER DELETE LIMIT nyckelordssyntax