Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Capturar N registros anteriores a partir de un ID

Estas en el tema de Capturar N registros anteriores a partir de un ID en el foro de Mysql en Foros del Web. Hola, realmente no se si me estoy complicando por demás o qué, pero me encuentro trabado en una situación que no logro descifrar. Aclaro que ...
  #1 (permalink)  
Antiguo 13/10/2011, 17:54
Ktulu
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Capturar N registros anteriores a partir de un ID

Hola, realmente no se si me estoy complicando por demás o qué, pero me encuentro trabado en una situación que no logro descifrar. Aclaro que no soy novato en el tema por lo que creo que es un problema de planteo.
Estoy implementando un scroll infinito en PHP el cual al llegar al final, mediante AJAX, se capturan los N siguientes registros para ser agregados a una tabla.

Supongamos que muestro de a 5 registros, los mismos ordenados por ID ascendente cuyos valores pueden no ser consecutivos. Ejemplo: 1,2,5,8,12.
Al llegar al final del scroll del sitio, mediante javascript capturo el ID del ultimo registro mostrado y lo utilizo como OFFSET en la consulta, lo cual me traerá los 5 siguientes registros a partir del nº 12.

Hasta ahí todo funciona perfecto, no es mas que una sucesión de consultas con limit y offset a partir de un ID, pero el problema aparece cuando deseo ordenar dichos registros por ID descendente.

Supongamos que ahora muestro los registros a la inversa. Ejemplo: 54,52,49,48,45
Cómo podría hacer para que a partir del último ID (en este caso 45) capturar los 5 registros anteriores ??? Ejemplo: 42,41,40,36,35

Agradecería cualquier tipo de información o recomendación que me puedan brindar
  #2 (permalink)  
Antiguo 13/10/2011, 19:28
Avatar de Rodrhigo  
Fecha de Ingreso: septiembre-2011
Ubicación: Temuco-Valdivia-Osorno
Mensajes: 254
Antigüedad: 13 años, 2 meses
Puntos: 48
Respuesta: Capturar N registros anteriores a partir de un ID

select *from tabla order by id DESC limit 0,5;
select *from tabla order by id DESC limit 5,5;
select *from tabla order by id DESC limit 10,5;
....
..
.
select *from tabla order by id DESC limit N,5;

Etiquetas: consecutivos, descendente, inverso
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:10.