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

obtener el registro siguiente y anterior ORDER BY rating

Estas en el tema de obtener el registro siguiente y anterior ORDER BY rating en el foro de Bases de Datos General en Foros del Web. Hola necesito algo de ayuda con una consulta tengo la siguiente tabla de fotos: foto --------- id (pk) votos puntos muestro el listado ordenado por ...
  #1 (permalink)  
Antiguo 01/10/2007, 09:50
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 19 años, 8 meses
Puntos: 0
obtener el registro siguiente y anterior ORDER BY rating

Hola
necesito algo de ayuda con una consulta

tengo la siguiente tabla de fotos:

foto
---------
id (pk)
votos
puntos

muestro el listado ordenado por rating de la siguiente manera:
Código:
SELECT id,ROUND(puntos/votos,2) AS rating FROM foto ORDER BY rating DESC, id DESC 
al acceder a cada foto del listado debería aparecen dos enlaces, uno a la foto anterior y otra a la siguiente respetando el orden del listado, lo hago con las siguientes consultas:

foto anterior:
Código:
SELECT id,ROUND(puntos/votos,2) AS rating FROM foto WHERE puntos/votos>=RATING-FOTO-ACTUAL AND id!=ID-FOTO-ACTUAL ORDER BY rating ASC, id ASC LIMIT 0,1
foto siguiente:
Código:
SELECT id,ROUND(puntos/votos,2) AS rating FROM foto WHERE puntos/votos<=RATING-FOTO-ACTUAL AND id!=ID-FOTO-ACTUAL ORDER BY rating DESC, id DESC LIMIT 0,1
el problema, cuando hay dos fotos con el mismo rating, no funciona, así:

Código:
id:10 (rating = 4.00)
	foto anterior = id:20
	foto siguiente = id:20

------------------------------------

id:20 (rating = 4.00)
	foto anterior = id:10
	foto siguiente = id:10 
alguna manera de coseguir el registro anterior y siguiente para evitar ese problema? uso MySQL 5.0.27
gracias
__________________
Si digo que soy mentiroso. ¿Lo soy?
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 23:29.