MySQL LIMIT & OFFSET cu exemple

Anonim

Care este cuvântul cheie LIMIT?

Cuvântul cheie limită este utilizat pentru a limita numărul de rânduri returnate într-un rezultat al interogării.

Poate fi utilizat împreună cu comenzi SELECT, UPDATE SAU DELETE sintaxa cuvintelor cheie LIMIT

Sintaxa pentru cuvântul cheie LIMIT este următoarea

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

AICI

  • „SELECT {fieldname (s) | *} FROM tableName (s)” este instrucțiunea SELECT care conține câmpurile pe care am dori să le returnăm în interogarea noastră.
  • „[WHERE condition]” este opțional, dar atunci când este furnizat, poate fi folosit pentru a specifica un filtru pe setul de rezultate.
  • „LIMIT N” este cuvântul cheie și N este orice număr care începe de la 0, plasând 0 deoarece limita nu returnează nicio înregistrare în interogare. Punând un număr, să spunem că 5 va întoarce cinci înregistrări. Dacă înregistrările din tabelul specificat sunt mai mici de N, atunci toate înregistrările din tabelul interogat sunt returnate în setul de rezultate.

Să vedem un exemplu -

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

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ă a primilor 10 membri înregistrați din baza de date Myflix. Pentru a realiza acest lucru, am folosi următorul script.

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

Rețineți că doar 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 nostru de rezultate ale interogării.

Folosind OFF SET în interogarea LIMIT

Valoarea OFF SET este de asemenea folosită cel mai des împreună cu cuvântul cheie LIMIT. Valoarea OFF SET ne permite să specificăm ce rând să pornim de la preluarea datelor

Să presupunem că dorim să obținem un număr limitat de membri începând cu mijlocul rândurilor, putem folosi cuvântul cheie LIMIT împreună cu valoarea de compensare pentru a realiza acest lucru. Scriptul prezentat mai jos obține 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 dă următoarele rezultate.

 
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

Când ar trebui să folosim cuvântul cheie LIMIT?

Să presupunem că dezvoltăm aplicația care rulează pe myflixdb. Proiectantul nostru de sistem ne-a cerut să limităm numărul de înregistrări afișate pe o pagină pentru a spune 20 de înregistrări pe pagină, pentru a contracara timpii de încărcare lentă. Cum mergem la 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 este utilizat 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ă pornim de la preluarea datelor
  • Poate fi utilizat împreună cu comenzi SELECT, UPDATE SAU DELETE sintaxa cuvintelor cheie LIMIT