Lección 2.6: Limitando Resultados con LIMIT y OFFSET
Al trabajar con tablas grandes, a menudo no deseas recuperar cada fila. A veces solo necesitas los primeros registros, o quieres implementar "paginación" (mostrando resultados en la Página 1, Página 2, etc.). Para estas tareas, utilizamos las cláusulas LIMIT y OFFSET.
La Cláusula LIMIT
La cláusula LIMIT se utiliza para especificar el número máximo de filas que la consulta debe devolver.
Sintaxis
SELECT column1, column2, ...
FROM table_name
ORDER BY column_name
LIMIT count;
count: El número máximo de filas a devolver.
Nota: Se recomienda encarecidamente usar
LIMITjunto conORDER BY. Sin ordenamiento, las "primeras X filas" podrían ser cualquier fila, dependiendo de cómo el motor de base de datos optimiza la consulta.
La Cláusula OFFSET
La cláusula OFFSET le indica a la base de datos que omita un número específico de filas antes de comenzar a devolver los resultados.
Sintaxis
SELECT column1, column2, ...
FROM table_name
ORDER BY column_name
LIMIT count OFFSET skip;
skip: El número de filas a omitir antes de comenzar a devolver filas.
Paginación: Combinando LIMIT y OFFSET
La paginación es el proceso de dividir un conjunto de resultados grande en páginas discretas. Este es el caso de uso más común para combinar LIMIT y OFFSET.
- Página 1:
LIMIT 10 OFFSET 0(Filas 1-10) - Página 2:
LIMIT 10 OFFSET 10(Filas 11-20) - Página 3:
LIMIT 10 OFFSET 20(Filas 21-30)
Ejemplos
Ejemplo 1: Los 5 Filmes Más Largos
Esta consulta encuentra los 5 filmes más largos en la tabla film.
SELECT title, length
FROM film
ORDER BY length DESC
LIMIT 5;
Ejemplo 2: Omitiendo Registros
Esta consulta omite los primeros 10 actores (ordenados por ID) y devuelve los siguientes 5.
SELECT actor_id, first_name, last_name
FROM actor
ORDER BY actor_id
LIMIT 5 OFFSET 10;
Conclusiones Clave de esta Lección:
LIMITrestringe el número de filas en el conjunto de resultados.OFFSETomite un número especificado de filas antes de devolver datos.- Combinar
LIMITyOFFSETes la forma estándar de implementar paginación. - Siempre usa
ORDER BYcon estas cláusulas para asegurar resultados predecibles. Resultados verdaderamente predecibles están garantizados solo cuando se ordena por valores únicos (o por una combinación de columnas que define un orden único).
En la próxima lección, veremos cómo combinar WHERE, ORDER BY y LIMIT para construir consultas poderosas y precisas.