91 007 17 22 - 09:30 a 14:00 y de 16:00 a 21:00 horas.info@asociacionaepi.es

Limit de MySQL en SQL, solución.

Posteado en: blog Iniciado por

Limit de MySQL en SQL, solución.

En MySQL, cuando queremos limitar el rango de registros devueltos por una sentencia SELECT tenemos la opción de utilizar LIMIT:

Select FROM tabla LIMIT 10,5

Esta sentencia nos permite devolver 5 registros a partir del décimo. El ejemplo sería aplicable por ejemplo a un listado paginado con 5 registros por página y estuviésemos mostrando la tercera de ellas.

El problema es que SQL no tiene la opción de usar LIMIT. En ocasiones podemos solventarlo rápidamente utilizando TOP, con el que podemos devolver un cierto número de registros, pero solo desde el primero de la sentencia. La solución para esto se puede ver en el siguiente código:


SELECT FROM SELECT *, ROW_NUMBER() OVER (ORDER BY id) AS row FROM tabla ) ASalias WHERE row > 10 AND row <= 14

ROW_NUMBER() nos devuelve el número de línea de la consulta empezando por 1. Con este número de secuencia renombrado como row, ya podemos decirle con un simple where que nos lo limite en un cierto intervalo. Ciertamente es una solución en SQL un tanto enrevesada frente a la sencillez del LIMIT ofrecido por MySQL.
image_pdfimage_print

Leave a Reply

Uso de cookies

Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación y ofrecer contenidos y publicidad de interés. Al continuar con la navegación entendemos que se acepta nuestra política de privacidad y cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies