MySQL LIMIT & OFFSET cu Exemple
Ce este cuvรขntul cheie LIMIT?
Cuvรขntul cheie limit este folosit pentru a limita numฤrul de rรขnduri returnate รฎntr-un rezultat al unei interogฤri.
Poate fi folosit รฎmpreunฤ cu comenzile SELECT, UPDATE SAU DELETE LIMIT sintaxa cuvintelor cheie
Sintaxa pentru cuvรขntul cheie LIMIT este urmฤtoarea
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
AICI
- โSELECTARE {fieldname(s) | *} FROM tableName(s)โ este instrucศiunea SELECT care conศin cรขmpurile pe care am dori sฤ le returnฤm รฎn interogarea noastrฤ.
- โ[condiศia WHERE]โ este opศional, dar atunci cรขnd este furnizat, poate fi folosit pentru a specifica un filtru pentru setul de rezultate.
- โLIMITฤ Nโ este cuvรขntul cheie ศi N este orice numฤr care รฎncepe de la 0, punรขnd 0 ca limitฤ nu returneazฤ nicio รฎnregistrare รฎn interogare. Punerea unui numฤr sฤ spunem 5 va returna cinci รฎnregistrฤri. Dacฤ รฎnregistrฤrile din tabelul specificat sunt mai mici decรขt N, atunci toate รฎnregistrฤrile din tabelul interogat sunt returnate รฎn setul de rezultate.
Sฤ ne uitฤm la un exemplu -
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 |
Dupฤ cum puteศi vedea din captura de ecran de mai sus, doar doi membri au fost returnaศi.
Obศinerea unei liste de zece (10) membri numai din baza de date
Sฤ presupunem cฤ vrem sฤ obศinem o listฤ cu primii 10 membri รฎnregistraศi din baza de date Myflix. Am folosi urmฤtorul script pentru a realiza acest lucru.
SELECT * FROM members LIMIT 10;
Executarea scriptului de mai sus ne oferฤ rezultatele prezentate mai jos
| 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 |
Reศineศi cฤ numai 9 membri au fost returnaศi รฎn interogarea noastrฤ, deoarece N din clauza LIMIT este mai mare decรขt numฤrul total de รฎnregistrฤri din tabelul nostru.
Rescrieศi scriptul de mai sus dupฤ cum urmeazฤ
SELECT * FROM members LIMIT 9;
Returneazฤ doar 9 rรขnduri รฎn setul de rezultate ale interogฤrii.
Folosind OFF SET รฎn interogarea LIMIT
DECALAJ value este, de asemenea, cel mai adesea folosit รฎmpreunฤ cu cuvรขntul cheie LIMIT. Valoarea OFF SET ne permite sฤ specificฤm ce rรขnd sฤ รฎncepem de la preluarea datelor
Sฤ presupunem cฤ dorim sฤ obศinem un numฤr limitat de membri รฎncepรขnd de la mijlocul rรขndurilor, putem folosi cuvรขntul cheie LIMIT รฎmpreunฤ cu valoarea offset pentru a realiza acest lucru. Scriptul prezentat mai jos primeศte date รฎncepรขnd cu al doilea rรขnd ศi limiteazฤ rezultatele la 2.
SELECT * FROM `members` LIMIT 1, 2;
Executarea scriptului de mai sus รฎn MySQL Workbench รฎmpotriva myflixdb oferฤ urmฤtoarele rezultate.
| 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
Cรขnd ar trebui sฤ folosim cuvรขntul cheie LIMIT?
Sฤ presupunem cฤ suntem dezvoltaศiping aplicaศia care ruleazฤ pe myflixdb. Designerul nostru de sistem ne-a cerut sฤ limitฤm numฤrul de รฎnregistrฤri afiศate pe o paginฤ la, sฤ zicem, 20 de รฎnregistrฤri pe paginฤ pentru a contracara timpii de รฎncฤrcare lenศi. Cum implementฤm sistemul care sฤ รฎndeplineascฤ astfel de cerinศe ale utilizatorilor? Cuvรขntul cheie LIMIT este util รฎn astfel de situaศii. Am putea limita rezultatele returnate de o interogare la doar 20 de รฎnregistrฤri pe paginฤ.
Rezumat
- Cuvรขntul cheie LIMIT of este folosit pentru a limita numฤrul de rรขnduri returnate dintr-un set de rezultate.
- Numฤrul LIMIT poate fi orice numฤr de la zero (0) รฎn sus. Cรขnd zero (0) este specificat ca limitฤ, nu sunt returnate rรขnduri din setul de rezultate.
- Valoarea OFF SET ne permite sฤ specificฤm ce rรขnd sฤ รฎncepem de la preluarea datelor
- Poate fi folosit รฎmpreunฤ cu comenzile SELECT, UPDATE SAU DELETE LIMIT sintaxa cuvintelor cheie
