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