¿Qué filas se devuelven al usar LIMIT con OFFSET en MySQL?


140

En la consulta a continuación:

SELECT column 
FROM table
LIMIT 18 OFFSET 8

¿Cuántos resultados obtendremos como salida y de dónde a dónde?


La orden debe ser LIMIT primero, luego OFFSET. Si no, arrojará un error.
Mouser

Respuestas:


189

Devolverá 18 resultados comenzando en el registro # 9 y terminando en el registro # 26.

Comience leyendo la consulta de offset. Primero, compensa por 8, lo que significa que omite los primeros 8 resultados de la consulta. Luego, limita en 18. Lo que significa que considera los registros 9, 10, 11, 12, 13, 14, 15, 16 .... 24, 25, 26, que son un total de 18 registros.

Mira esto .

Y también la documentación oficial .


estás en lo correcto, ¿hay alguna diferencia b / w límite 8,18 y límite 18 offset 8
Arun Killu

26
No, es lo mismo. LIMIT 8, 18es solo un atajo :)
Mosty Mostacho

1
La mejor respuesta, ya que también estaba confundido, estaba pensando que devuelve los datos entre los dos dígitos, pero ahora está claro :)
MR_AMDEV

47

OFFSET no es más que una palabra clave para indicar el cursor inicial en la tabla

SELECT column FROM table LIMIT 18 OFFSET 8 -- fetch 18 records, begin with record 9 (OFFSET 8)

obtendrías el mismo formulario de resultados

SELECT column FROM table LIMIT 8, 18

representación visual ( Res un registro en la tabla en algún orden)

 OFFSET        LIMIT          rest of the table
 __||__   _______||_______   __||__
/      \ /                \ /
RRRRRRRR RRRRRRRRRRRRRRRRRR RRRR...
         \________________/
                 ||
             your result

3

Obtendrá la salida del columnvalor 9 al 26 como ha mencionado OFFSETcomo 8

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.