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ă dezvoltăm 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 20 de înregistrări pe pagină pentru a contracara timpii de încărcare lenți. Cum procedăm pentru implementarea sistemului care îndeplinește astfel de cerințe ale utilizatorilor? Cuvântul cheie LIMIT este util în astfel de situații. Am putea limita rezultatele returnate dintr-o interogare la 20 de înregistrări numai 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