MySQL omite los primeros 10 resultados

102

¿Hay alguna forma en MySQL de omitir los primeros 10 resultados de una consulta SELECT? Me gustaría que funcionara algo como LIMIT.

Brian
fuente
7
a todas las respuestas aquí les falta una cláusula ORDER BY. Tablas SQL no tienen un orden predeterminado, y sin una orden explícita POR no hay manera de saber wich son los primeros 10 resultados para saltar
fthiella

Respuestas:

125

Utilice LIMIT con dos parámetros. Por ejemplo, para devolver los resultados 11-60 (donde el resultado 1 es la primera fila), use:

SELECT * FROM foo LIMIT 10, 50

Para obtener una solución para devolver todos los resultados, consulte la respuesta de Thomas .

Dominic Rodger
fuente
¿Qué pasa si se eliminan algunas filas entre el número que ha mencionado?
Alex
91

También hay un OFFSET que debería funcionar:

SELECT column FROM table
LIMIT 10 OFFSET 10
jamesaharvey
fuente
7
más fácil de entender quelimit 10,10
shellbye
40

OFFSET es lo que está buscando.

SELECT * FROM table LIMIT 10 OFFSET 10
Trigonometría
fuente
33

Del manual :

Para recuperar todas las filas desde un cierto desplazamiento hasta el final del conjunto de resultados, puede usar un número grande para el segundo parámetro. Esta declaración recupera todas las filas desde la fila 96 hasta la última:

SELECT * FROM tbl LIMIT 95,18446744073709551615;

Obviamente, debería reemplazarlo 95por 10. El gran número que usan es 2 ^ 64 - 1, por cierto.

Thomas
fuente
5

LIMIT le permite omitir cualquier número de filas. Tiene dos parámetros, y el primero de ellos: cuántas filas se deben omitir.

Tu sentido común
fuente
Esto me dejó claro que "Qué es Offset" Gracias @Col. Metralla
OM The Eternity
2
select * from table where id not in (select id from table limit 10)

donde idestará la llave en tu mesa.

mickeymoon
fuente
Esto es útil y rápido de hacer, para impala y otras bases de datos donde el límite con desplazamiento requiere un argumento de orden que no siempre es deseable.
KarthikS
-5

Si su mesa tiene un pedido por identificación, podría hacerlo fácilmente mediante:

select * from table where id > 10
Biswajit Paul
fuente