2011-08-17 15 views
6

Duplicar posible:
Mysql Offset Infinite rowsMYSQL obtener todos los resultados pero primero

Estoy tratando de obtener todos los resultados para una consulta, pero no el primero, Tengo el siguiente pero su entrega un error, por favor ayuda; Gracias.

SELECT DISTINCT `memberID` FROM `discusComments` 
WHERE `topicID` = 4 ORDER BY `id` DESC OFFSET 1 
+1

¿Qué mensaje de error está recibiendo? –

+3

Ver http://stackoverflow.com/questions/255517/mysql-offset-infinite-rows. No se puede usar 'OFFSET' sin' LIMIT'. – Rob

Respuesta

13
SELECT DISTINCT `memberID` 
FROM `discusComments` 
WHERE `topicID` = 4 
ORDER BY `id` 
DESC limit 1,x 

donde x es un número lo suficientemente grande para contener todos los registros.

o use, en lugar de x, 18446744073709551615, que es el valor máximo de bigint unsigned.

2

Ignore la primera fila cuando reciba los resultados en su aplicación. Es mucho más limpio que el uso de una consulta feo como:

SELECT * FROM my_table LIMIT 1, 18446744073709551615 

Conseguir una fila adicional en realidad no hará daño a su rendimiento.

+0

No estoy de acuerdo con que es mejor devolver la primera fila cuando la pregunta solicitó que se elimine ... es tan claro como los métodos para eliminar la primera fila. También hay muchos casos en los que los datos de la fila pueden ser lo suficientemente grandes como para no querer transportarlos del servidor a la aplicación, p. datos almacenados en un BLOB – Barry

Cuestiones relacionadas