logo

Límit de MySQL

La consulta MySQL Limit s'utilitza per restringir el nombre de files retorna del conjunt de resultats, en lloc de anant a buscar tot el conjunt a la base de dades MySQL. La clàusula Limit funciona amb la instrucció SELECT per retornar només el nombre especificat de files. Aquesta consulta només accepta un o dos arguments i els seus valors han de ser zero o qualsevol nombre enter positiu.

És essencial en aquest cas quan la taula conté milers de files, o si voleu tornar només les dades inserides recentment. En altres paraules, si no us interessa obtenir totes les files retornades de la consulta, utilitzeu la clàusula MySQL Limit amb la instrucció SELECT. Millora el rendiment de la consulta i fins i tot deixa d'haver bloquejat el sistema quan la taula conté un gran nombre de dades.

Per obtenir només les files especificades de la taula, MySQL utilitza LÍMIT clàusula, mentre que SQL utilitza la clàusula SUPERIOR clàusula, i Oracle utilitza el ROWNUM clàusula amb el SELECCIONA declaració.

Sintaxi

A continuació es mostra la sintaxi de l'ús de la consulta Limit in MySQL :

 SELECT column_list FROM table_name LIMIT offset, count; 

A la sintaxi anterior, podem veure:

Llista_columnes: És el nom de la columna que voleu tornar.

Nom_taula: És el nom de la taula que conté el nom de la columna.

Desplaçament: Especifica el número de fila des de la qual voleu tornar. El desplaçament de la fila comença des de 0, no 1.

Recompte: Especifica el nombre màxim de files que voleu tornar.

La següent representació visual ho explica amb més claredat:

Límit de MySQL

NOTA: Si especifiqueu només un argument amb la clàusula Limit, MySQL assumeix això per determinar el nombre màxim de files per retornar la sortida del conjunt de resultats. En aquest cas, els arguments de la clàusula de límit, el desplaçament i el recompte són equivalents.

Clàusula LIMIT amb clàusula ORDER BY

L'usuari ha d'utilitzar la clàusula Limit amb la clàusula Order By. Sense utilitzar la clàusula Order By, obtindreu el resultat en un ordre no especificat . En aquest cas, és difícil saber el resultat de la consulta a partir de quines files. Per tant, és un bon hàbit utilitzar Grup per clàusula amb una clàusula Limit per obtenir les files en un ordre específic.

La sintaxi següent es pot utilitzar per obtenir el resultat en un ordre únic:

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

Exemples de límit de MySQL

Creem una taula de mostra a la base de dades que contingui les dades següents i entenem com funciona la clàusula Limit a MySQL utilitzant diversos exemples:

Taula: empleats

Límit de MySQL

1. MySQL Limit per retornar les files més altes o més baixes

La següent declaració s'utilitza per obtenir els cinc empleats més joves:

 SELECT * FROM employees ORDER BY emp_age LIMIT 5; 

Aquesta declaració ordena primer l'edat de l'empleat mitjançant la clàusula Agrupa per, i després la clàusula Límit retorna el resultat dels cinc primers. Després d'executar els passos anteriors, obtindrem la següent sortida:

Límit de MySQL

2. MySQL Limit per obtenir un rang de files mitjançant offset

De vegades voleu obtenir un resultat entre els intervals de valors. Per exemple, teniu un gran nombre de files per mostrar dades a les aplicacions, després dividiu-les en pàgines i cada pàgina conté un màxim de 10 files en una taula. En aquest cas, podeu utilitzar la consulta següent per obtenir un interval de files:

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

Aquesta instrucció retorna les files que comencen des de la fila número 3 i arriba fins a un màxim de setenes files. També classifica els ingressos de l'empleat de major a menor ordre. Executeu la consulta i obtindreu la següent sortida:

alinear la imatge amb css
Límit de MySQL

3. Límit de MySQL amb la clàusula WHERE

MySQL Limit també es pot treballar amb la clàusula WHERE. Primer comprova la condició especificada a la taula i produeix les files que coincideixen amb la condició.

Aquesta consulta selecciona els cinc primers empleats l'edat dels quals és superior a 30 anys. Aquí també hem utilitzat la clàusula Order By per ordenar els empleats en ordre descendent segons els seus ingressos.

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

Després d'executar correctament la instrucció anterior, obtindrem la següent sortida:

Límit de MySQL

4. MySQL LIMIT per obtenir l'enèsim valor més alt o més baix

De vegades volem obtenir les files del valor enèsimo més alt o més baix. En aquest cas, podem utilitzar la següent clàusula MySQL LIMIT per obtenir el resultat esperat:

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

En aquesta sintaxi, la clàusula LIMIT n-1, 1 retorna 1 fila que comença a la fila n.

Per exemple, la consulta següent retorna la informació de l'empleat que té el segon ingressos més alt:

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

Executant la declaració anterior, donarà la següent consulta:

Límit de MySQL

Cal tenir en compte que la consulta anterior només funciona quan la vostra taula no conté dos empleats que tinguin alguns ingressos. En aquest cas, farem servir DENSE_RANK () per obtenir un resultat més precís.