resumen: en este tutorial, aprenderá a usar la cláusula MySQL LIMIT
para restringir el número de filas devueltas por una consulta.
introducción a la cláusula de límite de MySQL
la cláusulaLIMIT
se utiliza en la instrucciónSELECT
para restringir el número de filas a devolver. La cláusula LIMIT
Acepta uno o dos argumentos. Los valores de ambos argumentos deben ser cero o enteros positivos.,
el siguiente ejemplo muestra El LIMIT
la sintaxis de la cláusula con dos argumentos:
Code language: SQL (Structured Query Language) (sql)
En esta sintaxis:
-
offset
especifica el desplazamiento de la primera fila para volver. Eloffset
de la primera fila es 0, No 1. - El
row_count
especifica el número máximo de filas a devolver.,
La siguiente imagen ilustra el LIMIT
cláusula:
Cuando se utiliza la etiqueta LIMIT
cláusula con un argumento, MySQL utilizar este argumento para determinar el número máximo de filas que se devuelven desde la primera fila del conjunto de resultados.,
por lo Tanto, estas dos cláusulas son equivalentes:
Code language: SQL (Structured Query Language) (sql)
Y
además De la sintaxis anterior, MySQL proporciona la siguiente alternativa LIMIT
cláusula de compatibilidad con PostgreSQL.
Code language: SQL (Structured Query Language) (sql)
cláusulas límite y orden por
la instrucción SELECT
sin una cláusula ORDER BY
devuelve filas en un orden no especificado. Significa que las filas pueden estar en cualquier orden., Cuando aplique la cláusula LIMIT
a este conjunto de resultados desordenado, no sabrá qué filas devolverá la consulta.
por ejemplo, es posible que desee obtener de la quinta a la décima filas, pero de la quinta a la décima en qué orden? El orden de las filas es desconocido a menos que especifique la cláusula ORDER BY
.
por lo tanto, es una buena práctica usar siempre la cláusula LIMIT
con la cláusula ORDER BY
para restringir las filas de resultados en orden único.,
Code language: SQL (Structured Query Language) (sql)
La siguiente imagen ilustra el orden de evaluación de los LIMIT
cláusula en el SELECT
instrucción:
MySQL ejemplos de LÍMITE de
vamos a utilizar la etiqueta customers
tabla de la base de datos de ejemplo para la demostración.,
1) usando MySQL LIMIT para obtener las filas más altas o más bajas
Esta instrucción utiliza la cláusula LIMIT
clientes que tienen el crédito más alto:
Code language: SQL (Structured Query Language) (sql)
pruébelo
en este ejemplo:
- Primero, la cláusula
ORDER BY
ordena a los clientes por créditos en alto a bajo., - Luego, la cláusula
LIMIT
devuelve las primeras 5 filas.
de manera similar, este ejemplo utiliza la cláusula LIMIT
para encontrar 5 clientes que tienen los créditos más bajos:
Code language: SQL (Structured Query Language) (sql)
pruébelo
en este ejemplo:
- Primero, la cláusula
ORDER BY
ordena a los clientes por créditos en bajo a alto. - Luego, la cláusula
LIMIT
devuelve las primeras 5 filas.,
debido a que hay más de 5 clientes que tienen créditos cero, el resultado de la consulta anterior puede conducir a un resultado inconsistente.,
para solucionar este problema, debe agregar más columna a la cláusula ORDER BY
para restringir la fila en orden único:
Code language: SQL (Structured Query Language) (sql)
pruébelo
2) usando MySQL Limit para paginación
Cuando muestra datos en aplicaciones, a menudo desea dividir filas en páginas, donde cada página contiene un cierto número de filas como 5, 10 o 20.
para calcular el número de páginas, obtiene las filas totales divididas por el número de filas por página., Para obtener filas de una página específica, puede usar la cláusula LIMIT
.
esta consulta utiliza la función COUNT(*)
aggregate para obtener las filas Totales de la tabla customers
:
Code language: SQL (Structured Query Language) (sql)
Code language: JavaScript (javascript)
supongamos que cada página tiene 10 filas, para mostrar 122 clientes tienes 13 páginas. La última página 13 contiene solo dos filas., LIMIT
cláusula para obtener las filas de la página 1 que contiene los primeros 10 clientes ordenados por el nombre del cliente:
Code language: SQL (Structured Query Language) (sql)
Pruebe
Esta consulta utiliza la etiqueta LIMIT
cláusula para obtener las filas de la segunda página que incluyen la fila 11 – 20:
Code language: SQL (Structured Query Language) (sql)
Pruebe
En este ejemplo, la cláusula LIMIT 10, 10
devuelve 10 filas de la fila 11 – 20.,
3) el Uso de MySQL LÍMITE para obtener el n-ésimo mayor o el menor valor
Para obtener el n-ésimo mayor o menor valor, se utiliza el siguiente LIMIT
cláusula:
Code language: SQL (Structured Query Language) (sql)
La cláusula LIMIT n-1, 1
devuelve 1
fila empezando en la fila n
.
Por ejemplo, el siguiente se encuentra el cliente, que tiene la segunda más alta de crédito:
Code language: SQL (Structured Query Language) (sql)
Pruebe
Vamos a comprobar el resultado., Esta consulta devuelve todos los clientes ordenados por créditos de alto a bajo:
Code language: SQL (Structured Query Language) (sql)
Pruebe
Como se puede ver claramente desde la salida, el resultado fue correcto como se esperaba.
tenga en cuenta que esta técnica funciona cuando no hay dos clientes que tengan los mismos límites de crédito. Para obtener un resultado más preciso, debe usar la función de ventana DENSE_RANK()
.,
en este tutorial, ha aprendido a usar la cláusula MySQL LIMIT
para restringir el número de filas devueltas por la instrucción SELECT
.
- ¿Fue útil este tutorial?
- YesNo