MySQL
Límite y compensación
Buscar..
Sintaxis
- SELECCIONAR column_1 [, column_2]
FROM tabla_1
ORDEN POR order_column
LIMIT row_count [OFFSET row_offset] - SELECCIONAR column_1 [, column_2]
FROM tabla_1
ORDEN POR order_column
LIMIT [row_offset,] row_count
Observaciones
"Límite" podría significar "Número máximo de filas en una tabla".
"Offset" significa selección desde el número de row
(no debe confundirse con el valor de la clave principal o cualquier valor de datos de campo)
Relación de límite y compensación
Teniendo en cuenta la siguiente tabla de users
:
carné de identidad | nombre de usuario |
---|---|
1 | Usuario1 |
2 | Usuario2 |
3 | Usuario3 |
4 | Usuario4 |
5 | Usuario5 |
Para restringir el número de filas en el conjunto de resultados de una consulta SELECT
, la cláusula LIMIT
se puede usar junto con uno o dos enteros positivos como argumentos (cero incluido).
Cláusula LIMIT
con un argumento
Cuando se usa un argumento, el conjunto de resultados solo se limitará al número especificado de la siguiente manera:
SELECT * FROM users ORDER BY id ASC LIMIT 2
carné de identidad | nombre de usuario |
---|---|
1 | Usuario1 |
2 | Usuario2 |
Si el valor del argumento es 0
, el conjunto de resultados estará vacío.
También tenga en cuenta que la cláusula ORDER BY
puede ser importante para especificar las primeras filas del conjunto de resultados que se presentarán (al ordenar por otra columna).
Cláusula LIMIT
con dos argumentos.
Cuando se usan dos argumentos en una cláusula LIMIT
:
- el primer argumento representa la fila desde la cual se presentarán las filas del conjunto de resultados; este número se menciona a menudo como un desplazamiento , ya que representa la fila anterior a la fila inicial del conjunto de resultados restringido. Esto permite que el argumento reciba
0
como valor y, por lo tanto, tenga en cuenta la primera fila del conjunto de resultados no restringido. - el segundo argumento especifica el número máximo de filas que se devolverán en el conjunto de resultados (de manera similar al ejemplo del argumento único).
Por lo tanto la consulta:
SELECT * FROM users ORDER BY id ASC LIMIT 2, 3
Presenta el siguiente conjunto de resultados:
carné de identidad | nombre de usuario |
---|---|
3 | Usuario3 |
4 | Usuario4 |
5 | Usuario5 |
Observe que cuando el argumento de compensación es 0
, el conjunto de resultados será equivalente a una cláusula LIMIT
un argumento. Esto significa que las siguientes 2 consultas:
SELECT * FROM users ORDER BY id ASC LIMIT 0, 2
SELECT * FROM users ORDER BY id ASC LIMIT 2
Producir el mismo conjunto de resultados:
carné de identidad | nombre de usuario |
---|---|
1 | Usuario1 |
2 | Usuario2 |
OFFSET
palabra clave: sintaxis alternativa
Una sintaxis alternativa para la cláusula LIMIT
con dos argumentos consiste en el uso de la palabra clave OFFSET
después del primer argumento de la siguiente manera:
SELECT * FROM users ORDER BY id ASC LIMIT 2 OFFSET 3
Esta consulta devolvería el siguiente conjunto de resultados:
carné de identidad | nombre de usuario |
---|---|
3 | Usuario3 |
4 | Usuario4 |
Observe que en esta sintaxis alternativa los argumentos tienen sus posiciones cambiadas:
el primer argumento representa el número de filas que se devolverán en el conjunto de resultados;
El segundo argumento representa el desplazamiento.