Entrada

MySQL 🐬 : Uso de LIMIT y OFFSET para Limitar Resultados

Las cláusulas LIMIT y OFFSET nos permiten controlar la cantidad de resultados que obtienes de una consulta, ideal para mejorar el rendimiento.

En MySQL, cuando trabajas con grandes cantidades de datos, puede que no siempre necesites obtener todos los registros de una tabla. Aquí es donde el comando LIMIT entra en juego. Este comando te permite restringir la cantidad de filas que una consulta puede devolver, lo que resulta muy útil para mejorar el rendimiento de las consultas y facilitar la visualización de datos, especialmente cuando solo necesitas una muestra de los resultados.

Además, LIMIT es clave para implementar paginación en aplicaciones, permitiéndote dividir los resultados en páginas y mostrar solo una cantidad específica de registros por vez.

En este post, veremos cómo usar LIMIT para limitar los resultados de las consultas en MySQL, con ejemplos prácticos utilizando una base de datos de tienda y su tabla de productos.

¿Cómo funciona LIMIT?

La sintaxis de LIMIT es la siguiente:

1
2
3
SELECT columna1, columna2, ...
FROM tabla
LIMIT n;
  • n: El número de registros que deseas obtener.

Ejemplo básico:

Supongamos que tenemos una tabla llamada productos en la base de datos tienda con los siguientes datos:

  • idnombrepreciocantidad
    1Laptop49999025
    2Mouse1999040
    3Teclado2990060
    4Monitor12000015
    5Tablet10900030
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    CREATE TABLE productos (
        id INT AUTO_INCREMENT PRIMARY KEY,
        nombre VARCHAR(255),
        precio INT,
        cantidad INT
    );
    
    INSERT INTO productos (nombre, precio, cantidad)
    VALUES 
        ('Laptop', 499990, 25),
        ('Mouse', 19990, 40),
        ('Teclado', 29900, 60),
        ('Monitor', 120000, 15),
        ('Tablet', 109000, 30);
    

Si quieres obtener solo los primeros 3 productos, puedes utilizar LIMIT de la siguiente forma:

1
2
SELECT * FROM productos
LIMIT 3;
  • idnombrepreciocantidad
    1Laptop49999025
    2Mouse1999040
    3Teclado2990060
  • root@localhost [tienda]> SELECT * FROM productos LIMIT 3;
    +----+---------+--------+----------+
    | id | nombre  | precio | cantidad |
    +----+---------+--------+----------+
    |  1 | Laptop  | 499990 |       25 |
    |  2 | Mouse   |  19990 |       40 |
    |  3 | Teclado |  29900 |       60 |
    +----+---------+--------+----------+
    3 rows in set (0.01 sec)
    

¿Cómo usar LIMIT con OFFSET?

Además de limitar el número de resultados, puedes usar OFFSET para omitir una cierta cantidad de registros antes de devolver los resultados.

La sintaxis con LIMIT y OFFSET es:

1
2
3
SELECT columna1, columna2, ...
FROM tabla
LIMIT n OFFSET m;
  • n: El número de registros que deseas obtener.
  • m: El número de registros a omitir.

Ejemplo con OFFSET:

Supongamos que deseamos omitir los primeros 2 productos y obtener los siguientes 3:

1
2
SELECT * FROM productos
LIMIT 3 OFFSET 2;

Resultado:

  • idnombrepreciocantidad
    3Teclado2990060
    4Monitor12000015
    5Tablet10900030
  • root@localhost [tienda]> SELECT * FROM productos LIMIT 3 OFFSET 2;
    +----+---------+--------+----------+
    | id | nombre  | precio | cantidad |
    +----+---------+--------+----------+
    |  3 | Teclado |  29900 |       60 |
    |  4 | Monitor | 120000 |       15 |
    |  5 | Tablet  | 109000 |       30 |
    +----+---------+--------+----------+
    3 rows in set (0.01 sec)
    

Aplicaciones Comunes de LIMIT

  1. Paginación de Resultados: Si estás mostrando resultados en una aplicación web, como productos en una tienda online, puedes utilizar LIMIT junto con OFFSET para paginar los resultados. De esta forma, solo se muestran un número limitado de productos por página.

    Ejemplo:

    • Página 1 (registros 1 a 10):
    1
    2
    
    SELECT * FROM productos
    LIMIT 10 OFFSET 0;
    
    • Página 2 (registros 11 a 20):
    1
    2
    
    SELECT * FROM productos
    LIMIT 10 OFFSET 10;
    
  2. Mejorar el Rendimiento: Cuando trabajas con grandes bases de datos, las consultas sin LIMIT pueden tardar mucho. Si solo necesitas una pequeña muestra de resultados, usar LIMIT puede acelerar considerablemente la consulta.

  3. Consultas de Muestra: Si necesitas revisar o probar algo rápidamente en la base de datos, puedes usar LIMIT para obtener solo un subconjunto de los registros.

Para profundizar y ver más ejemplos prácticos, puede consultar el siguiente video:

Esta entrada está licenciada bajo CC BY 4.0 por el autor.