MySQL Relación de límite y compensación


Ejemplo

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.