logo

Limita MySQL

Interogarea MySQL Limit este folosită pentru restrânge numărul de rânduri se întoarce din setul de rezultate, mai degrabă decât aducerea întregul set din baza de date MySQL. Clauza Limit funcționează cu instrucțiunea SELECT numai pentru a returna numărul specificat de rânduri. Această interogare acceptă doar unul sau două argumente, iar valorile acestora ar trebui să fie zero sau orice număr întreg pozitiv.

Este esențial într-un astfel de caz când tabelul conține mii de rânduri, sau doriți să returnați doar datele introduse recent. Cu alte cuvinte, dacă nu sunteți interesat să obțineți toate rândurile returnate din interogare, utilizați clauza MySQL Limit cu instrucțiunea SELECT. Îmbunătățește performanța interogării și chiar nu mai blochează sistemul atunci când tabelul conține un număr mare de date.

Pentru a obține numai rândurile specificate din tabel, MySQL utilizează LIMITĂ clauza, în timp ce SQL utilizează TOP clauza, iar Oracle folosește ROWNUM clauza cu SELECTAȚI afirmație.

Sintaxă

Următoarele sunt sintaxa utilizării interogării Limit în MySQL :

 SELECT column_list FROM table_name LIMIT offset, count; 

În sintaxa de mai sus, putem vedea:

Listă_coloană: Este numele coloanei pe care doriți să o returnați.

Nume_tabel: Este numele tabelului care conține numele coloanei dvs.

Decalaj: Specifică numărul de rând de la care doriți să reveniți. Offset-ul rândului începe de la 0, nu de la 1.

Numara: Specifică numărul maxim de rânduri pe care doriți să le returnați.

Următoarea reprezentare vizuală explică mai clar:

Limita MySQL

NOTĂ: Dacă specificați un singur argument cu clauza Limit, MySQL presupune acest lucru pentru a determina numărul maxim de rânduri pentru returnarea rezultatelor din setul de rezultate. În acest caz, argumentele clauzei Limit, offset și numărul sunt echivalente.

Clauza LIMIT cu Clauza ORDER BY

Utilizatorul trebuie să folosească clauza Limit cu clauza Order By . Fără a utiliza clauza Order By, veți obține rezultatul într-un ordine nespecificata . În acest caz, este greu să știi că interogarea returnează rezultatul din ce rânduri. Deci, este un obicei bun de folosit Clauza Group By cu o clauză Limit pentru obținerea rândurilor într-o anumită ordine.

Următoarea sintaxă poate fi folosită pentru a obține rezultatul într-o ordine unică:

 SELECT column_list FROM table_name GROUP BY order_expression LIMIT offset, count; 

Exemple de limită MySQL

Să creăm un exemplu de tabel în baza de date care conține următoarele date și să înțelegem cum funcționează clauza Limit în MySQL folosind diverse exemple:

Tabel: angajați

Limita MySQL

1. MySQL Limită pentru a returna rândurile cele mai mari sau cele mai mici

Următoarea declarație a folosit pentru a obține primii cinci angajați mai tineri:

 SELECT * FROM employees ORDER BY emp_age LIMIT 5; 

Această instrucțiune sortează mai întâi vârsta angajaților folosind clauza Group By, iar apoi clauza Limit returnează rezultatul din primele cinci. După executarea pașilor de mai sus, vom obține următorul rezultat:

Limita MySQL

2. MySQL Limit pentru a obține o serie de rânduri folosind offset

Uneori doriți să obțineți un rezultat între intervalele de valori. De exemplu, aveți un număr mare de rânduri pentru a afișa date pe aplicații, apoi le împărțiți în pagini, iar fiecare pagină conține maximum 10 rânduri într-un tabel. În acest caz, puteți utiliza următoarea interogare pentru a obține o serie de rânduri:

 SELECT emp_id, emp_name, income FROM employees ORDER BY income DESC LIMIT 3,7; 

Această instrucțiune returnează rândurile începând de la rândul numărul 3 și merge la maximum al șaptelea rând. De asemenea, sortează veniturile angajatului în ordinea cea mai mare la cea mai mică. Executați interogarea și veți obține următorul rezultat:

denumirea convențiilor java
Limita MySQL

3. Limita MySQL cu clauza WHERE

Limita MySQL poate fi lucrată și cu clauza WHERE. Mai întâi verifică condiția specificată în tabel și produce rândurile care se potrivesc cu condiția.

Această interogare selectează primii cinci angajați a căror vârstă este mai mare de 30 de ani. Aici, am folosit și clauza Order By pentru a sorta angajații în ordine descrescătoare folosind venitul lor.

 SELECT emp_name, emp_age, income FROM employees WHERE emp_age>30 ORDER BY income DESC LIMIT 5; 

După executarea cu succes a instrucțiunii de mai sus, vom obține următorul rezultat:

Limita MySQL

4. MySQL LIMIT pentru a obține a n-a cea mai mare sau cea mai mică valoare

Uneori dorim să obținem rândurile cu a n-a cea mai mare sau cea mai mică valoare. În acest caz, putem folosi următoarea clauză MySQL LIMIT pentru a obține rezultatul așteptat:

 SELECT column_list FROM table_name ORDER BY expression LIMIT n-1, 1; 

În această sintaxă, clauza LIMIT n-1, 1 returnează 1 rând care începe la rândul n.

De exemplu, următoarea interogare returnează informațiile despre angajat care are al doilea cel mai mare venit:

 SELECT emp_name, city, income FROM employees ORDER BY income LIMIT 1, 1; 

Executând instrucțiunea de mai sus, va da următoarea interogare:

Limita MySQL

Este de remarcat că interogarea de mai sus funcționează numai atunci când tabelul dvs. nu conține doi angajați care au un anumit venit. În acest caz, vom folosi DENSE_RANK () pentru a obține un rezultat mai precis.