Contenido de esta guía
Qué hace LIMIT
LIMIT fija un máximo de filas en el resultado. Es útil para explorar una tabla, construir una lista de los valores más altos o bajos y evitar mostrar más datos de los necesarios.
La cláusula no define el orden. Si la pregunta contiene palabras como “primeros”, “últimos”, “más caros” o “más recientes”, necesitas un ORDER BY que exprese ese criterio.
Sintaxis habitual
SELECT columnas
FROM tabla
ORDER BY criterio
LIMIT cantidad;LIMIT 1 devuelve como máximo una fila; LIMIT 0 no devuelve ninguna. Si la tabla contiene menos filas que el límite, el resultado simplemente será más corto.
Ejemplo guiado: tres productos más caros
SELECT id,
nombre,
precio
FROM productos
ORDER BY precio DESC, id ASC
LIMIT 3;| id | nombre | precio |
|---|---|---|
| 4 | Portátil Pro | 999,0 |
| 7 | Monitor 27 | 249,0 |
| 3 | Monitor 24 | 179,0 |
Primero se ordena de mayor a menor. Después se conserva el bloque de tres filas. id ASC ofrece un desempate estable si dos productos comparten precio.
LIMIT no significa aleatorio. Sin ORDER BY obtienes “hasta N filas”, pero no una muestra aleatoria ni un conjunto reproducible. Para aleatoriedad real necesitas una técnica específica del motor y valorar su coste.
Cuándo encaja y cuándo no
- Exploración: inspeccionar unas pocas filas mientras conoces una tabla.
- Top N global: los diez pedidos de mayor importe o los cinco productos con menos stock.
- Paginación: combinarlo con
OFFSETo utilizar otra estrategia. - Top N por grupo: un
LIMITfinal no devuelve N filas por categoría; normalmente necesitas una función de ventana comoROW_NUMBER.
Errores frecuentes
Confundir límite con filtro
LIMIT 3 no selecciona filas que cumplan una condición; solo recorta el resultado. Usa WHERE para decidir qué filas son candidatas.
Solicitar un top N sin ordenar
La consulta puede devolver tres filas, pero no puedes afirmar que sean las de mayor o menor valor.
Práctica: dos productos más baratos
Construye un límite con significado
Devuelve id, nombre y precio de los dos productos más baratos. Ordena por precio ascendente y usa el id para desempatar.
ASC.id ASC como segundo criterio.Solución razonada
SELECT id,
nombre,
precio
FROM productos
ORDER BY precio ASC, id ASC
LIMIT 2;Devuelve Cable USB-C (12,0) y Ratón (24,9). El orden expresa qué significa “más baratos”; LIMIT conserva las dos primeras filas de ese orden.
Sintaxis según el motor
- PostgreSQL, SQLite y MySQL: admiten
LIMIT. - SQL Server: ofrece
TOPpara límites sencillos yOFFSET ... FETCHpara paginación. - SQL estándar: utiliza
FETCH FIRST ... ROWS ONLY, con disponibilidad y detalles según el motor.
Qué debes recordar
LIMITfija un máximo de filas.ORDER BYda significado a “primeras” o “mejores”.WHEREfiltra;LIMITrecorta.- Un límite global no equivale a N filas por cada grupo.