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

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

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

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