logo

Límite de MySQL

La consulta de límite de MySQL se utiliza para restringir el número de filas regresa del conjunto de resultados, en lugar de atractivo todo el conjunto en la base de datos MySQL. La cláusula de límite funciona con la instrucción SELECT para devolver únicamente el número especificado de filas. Esta consulta acepta sólo uno o dos argumentos y sus valores deben ser cero o cualquier número entero positivo.

Es esencial en tal caso cuando la tabla contiene miles de filas o desea devolver solo los datos insertados recientemente. En otras palabras, si no está interesado en obtener todas las filas de la consulta, utilice la cláusula de límite de MySQL con la instrucción SELECT. Mejora el rendimiento de la consulta e incluso deja de tener bloqueado el sistema cuando la tabla contiene una gran cantidad de datos.

Para obtener solo las filas especificadas de la tabla, MySQL usa el LÍMITE cláusula, mientras que SQL utiliza la ARRIBA cláusula, y Oracle utiliza la ROWNUM cláusula con la SELECCIONAR declaración.

Sintaxis

La siguiente es la sintaxis del uso de la consulta de límite en mysql :

 SELECT column_list FROM table_name LIMIT offset, count; 

En la sintaxis anterior, podemos ver:

Lista_columnas: Es el nombre de la columna que desea devolver.

Nombre de la tabla: Es el nombre de la tabla que contiene el nombre de su columna.

Compensar: Especifica el número de una fila desde la que desea regresar. El desplazamiento de la fila comienza desde 0, no desde 1.

Contar: Especifica el número máximo de filas que desea devolver.

La siguiente representación visual lo explica más claramente:

Límite de MySQL

NOTA: Si especifica solo un argumento con la cláusula Límite, MySQL asume esto para determinar el número máximo de filas para devolver la salida del conjunto de resultados. En ese caso, los argumentos de la cláusula de límite, el desplazamiento y el recuento son equivalentes.

Cláusula LIMIT con cláusula ORDER BY

El usuario debe utilizar la cláusula Límite con la cláusula Ordenar por. Sin utilizar la cláusula Ordenar por, obtendrá el resultado en un orden no especificada . En ese caso, es difícil saber la consulta devuelve el resultado de qué filas. Por lo tanto, es un buen hábito utilizar Cláusula agrupar por con una cláusula de límite para colocar las filas en un orden específico.

Se puede utilizar la siguiente sintaxis para obtener el resultado en un orden único:

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

Ejemplos de límites de MySQL

Creemos una tabla de muestra en la base de datos que contenga los siguientes datos y comprendamos cómo funciona la cláusula de límite en MySQL usando varios ejemplos:

Tabla: empleados

Límite de MySQL

1. Límite de MySQL para devolver las filas más altas o más bajas

Se utilizó la siguiente declaración para obtener los cinco mejores empleados más jóvenes:

 SELECT * FROM employees ORDER BY emp_age LIMIT 5; 

Esta declaración primero ordena la edad del empleado usando la cláusula Agrupar por, y luego la cláusula Límite devuelve el resultado entre los cinco primeros. Después de ejecutar los pasos anteriores, obtendremos el siguiente resultado:

Límite de MySQL

2. Límite de MySQL para obtener un rango de filas usando desplazamiento

A veces desea obtener un resultado entre los rangos de valores. Por ejemplo, tiene una gran cantidad de filas para mostrar datos sobre aplicaciones, luego los divide en páginas y cada página contiene un máximo de 10 filas en una tabla. En ese caso, puede utilizar la siguiente consulta para obtener un rango de filas:

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

Esta declaración devuelve las filas que comienzan desde la fila número 3 y llega hasta un máximo de la séptima fila. También clasifica los ingresos del empleado de mayor a menor. Ejecute la consulta y obtendrá el siguiente resultado:

canela vs mate
Límite de MySQL

3. Límite de MySQL con cláusula WHERE

El límite de MySQL también se puede trabajar con la cláusula WHERE. Primero verifica la condición especificada en la tabla y genera las filas que coinciden con la condición.

Esta consulta selecciona los primeros cinco empleados cuya edad sea mayor a 30 años. Aquí, también utilizamos la cláusula Ordenar por para ordenar a los empleados en orden descendente según sus ingresos.

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

Después de la ejecución exitosa de la declaración anterior, obtendremos el siguiente resultado:

Límite de MySQL

4. LÍMITE de MySQL para obtener el enésimo valor más alto o más bajo

A veces queremos obtener las filas del enésimo valor más alto o más bajo. En ese caso, podemos usar la siguiente cláusula LIMIT de MySQL para obtener el resultado esperado:

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

En esta sintaxis, la cláusula LIMIT n-1, 1 devuelve 1 fila que comienza en la fila n.

Por ejemplo, la siguiente consulta devuelve la información del empleado que tiene el segundo ingreso más alto:

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

Al ejecutar la declaración anterior, se obtendrá la siguiente consulta:

Límite de MySQL

Cabe señalar que la consulta anterior solo funciona cuando su tabla no contiene dos empleados que tengan algún ingreso. En ese caso usaremos DENSE_RANK () para obtener un resultado más preciso.