2010-05-13 40 views
72

¿Existe alguna forma en MySQL de que se omitan los 10 primeros resultados de una consulta SELECT? Me gustaría que funcione algo como LIMIT.MySQL omita los primeros 10 resultados

+6

todas las respuestas aquí faltan una cláusula ORDER BY. Las tablas SQL no tienen un orden predeterminado, y sin un ORDER BY explícito no hay forma de saber cuáles son los primeros 10 resultados omitiendo – fthiella

Respuesta

5

LIMIT le permiten omitir cualquier cantidad de filas. Tiene dos parámetros, y el primero de ellos - el número de filas para saltar

+0

Esto me dejó claro que "¿Qué es Offset? Gracias @Col. Shrapnel –

24

Desde el manual:

Para recuperar todas las filas de un cierto desplazamiento hasta el final del conjunto de resultados, se puede utiliza un gran número para el segundo parámetro. Esta instrucción recupera todas las filas de la fila 96a de la última:

SELECT * FROM tbl LIMIT 95,18446744073709551615; 

Obviamente, se debe reemplazar por 9510. El gran número que usan es 2^64 - 1, por cierto.

+5

¿Qué sucede si tengo más de 18446744073709551615 registros? :-) – ceejayoz

+1

a 1 byte cada uno, podría estar esperando un momento: P ~ 18pB ... – Kurru

+18

@ceejayoz: Entonces usted tiene una máquina de al menos 50 años en el futuro y probablemente no estaría programando consultas MySQL: P – Thomas

89

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

SELECT * FROM foo LIMIT 10, 50 

Para una solución para devolver todos los resultados, ver Thomas' answer.

+0

¿Qué sucede si se eliminan algunas filas entre el número que ha mencionado? –

61

Hay un desplazamiento, así que debe hacer el truco:

SELECT column FROM table 
LIMIT 10 OFFSET 10 
+1

Funciona con Postgres también –

+0

más fácil de entender que 'límite 10,10' – shellbye

20

OFFSET es lo que busca.

SELECT * FROM table LIMIT 10 OFFSET 10 
1
select * from table where id not in (select id from table limit 10) 

donde id ser la clave en la tabla.

+0

sin ganancia de eficiencia aquí – Isaac

+0

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 . –

+0

Esta es la única respuesta que realmente logra lo que la pregunta plantea. Obtiene TODOS los resultados después de los primeros 10, perfecto. Upvoted. – benjaminhull

Cuestiones relacionadas