¿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?

Arun Killu
fuente
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 .

Mosty Mostacho
fuente
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
viña
fuente
3

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

Mahesh Patil
fuente