Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Mysql (http://www.forosdelweb.com/f86/)
-   -   Posicion en una tabla segun el valor del campo (http://www.forosdelweb.com/f86/posicion-tabla-segun-valor-del-campo-421027/)

mamon 28/08/2006 18:23

Posicion en una tabla segun el valor del campo
 
Hola, tengo una consulta
Tengo una base de datos y una tabla. Digamos que los registros son

id nombre ranking
1 Luis 9
2 Mario 7
3 Pedro 13
4 Jorge 8

Lo que quiero es hacer un select where id = 2
lo que quiero saber qué posicion tomaria si agrupo los registros por ranking. Sé cómo hacer si tengo todos los registros en un arreglo y hago un bucle para ordenarlos, pero no quiero que haya tanto trabajo, sino con un solo query o algo más simple... alguien sabe cómo lo puedo hacer?

eits 28/08/2006 18:29

el id nunca cambia su valor(a menos que lo modifiques) y por lo tanto aunque lo ordenes no tienes problema al hacer select where id = 2, esto quedaria asi(ya ordenado por ranking):

id nombre ranking
2 Mario 7
4 Jorge 8
1 Luis 9
3 Pedro 13

no tendrias problemas.
saludos.

mamon 28/08/2006 18:33

No entiendo, creo que me expliqué mal.. en el caso que diga where id = 2 quiero que me devuelva 4
si hago where id = 4 quiero que me devuelva 3
si hago where id = 3 quiero que me devuelva 1

osea como si estuviera con un order by ranking desc pero no quiero que me devuelva toda la tabla, sino la posicion donde estaría el registro si hago el order by ranking desc

eits 28/08/2006 18:54

oops; entendi mal, pero bueno se me ocurre que crees una tabla temporal que tenga:

campo1= posicion(autoincrement);
campo2= id=id

esto es, haces tu consulta trayendo solo el "id" y lo colocas en la tabla temporal y luego haces la consulta select posicion from tablatemporal where id = 2.

eso es lo único que se me ocurre por el momento.
espero y te sirva de algo.
saludos.

MaYoSyStEmS 28/08/2006 19:06

select * from ranking order by ranking ASC limit 0,1 primer lugarr
select * from ranking order by ranking ASC limit 1,1 segundo
select * from ranking order by ranking ASC limit 2,1 tercero
select * from ranking order by ranking ASC limit 3,1 cuarto

ojala te sirva

mamon 30/08/2006 12:54

Claro eits, esa es una opción, la voy a analizar, porque tengo que calcular cuantos registros abran y si vale la pena. Pero igual gracias


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

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.