Foros del Web » Programando para Internet » PHP »

Problema sentencia ordenación

Estas en el tema de Problema sentencia ordenación en el foro de PHP en Foros del Web. Bueno, tengo este mismo problema, lo explicaría con mis palabras pero esta persona a la q le copié el mensaje se expresa muy claramente. Un ...
  #1 (permalink)  
Antiguo 03/06/2007, 15:16
 
Fecha de Ingreso: junio-2007
Mensajes: 2
Antigüedad: 16 años, 10 meses
Puntos: 0
Problema sentencia ordenación

Bueno, tengo este mismo problema, lo explicaría con mis palabras pero esta persona a la q le copié el mensaje se expresa muy claramente. Un saludo


Hola,

Es la primera vez que escribo aquí, hace bien poco que tengo MySQL y estoy intentando hacer algo demasiado complicado para mis conocimientos :) Por eso abro este topic. Si algún usuario veterano me puede dar algo de luz, o por el contrario es mejor que cree el topic en otro lugar, decidmelo por favor...

Allá va...

Tengo una tabla donde se almacenan unos datos, y es una especie de ranking, o Top 10 (para resumir). Dicha tabla se va actualizando cada cierto tiempo, y me interesa hacer una select que me devuelva en qué posición está cierto registro.

Por ejemplo, me centro en dos campos, NOMBRE(varchar) y VALOR(Int) (es un ejemplo)

Quiero hacer una Select que me diga en qué posición del ranking está la row cuyo Nombre sea x. Todo esto, ordenado by Valor DESC.

Entiendo que tengo que jugar con el COUNT, pero no sé cómo. Si tengo 200 registros, y hago una select que acabe en ORDER BY Valor DESC, tengo el orden, pero tengo que buscar concretamente ese Nombre, y saber en qué posición (con el count) está.

He intentado con el Count, o con un Union, pero no lo consigo. Si alguien me puede ayudar un poco se lo agradecería!

Muchas gracias !!!



____


Espero puedan ayudarme...
  #2 (permalink)  
Antiguo 04/06/2007, 08:10
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Problema sentencia ordenación

Creo que lo más eficiente sería hacer una consulta con una subconsulta, pero de forma rápida se me ocurre hacer esto:

SELECT valor FROM tabla WHERE nombre="nombre"

de esa consulta obtenés el valor de ese registro.

Luego,
SELECT COUNT(*) FROM tabla WHERE valor >= el valor que obtuviste

Entonces sabrás cuántos registros tienen mayor valor que el que te interesa.

Como escribí antes, seguro hay formas más eficientes, pero al menos eso te da un punto de partida.

Saludos.
  #3 (permalink)  
Antiguo 04/06/2007, 08:49
 
Fecha de Ingreso: junio-2007
Mensajes: 2
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Problema sentencia ordenación

pues si es buena esa opcion...

Al final lo hice de una manera muy cutre, pero visto esta q m ofreces me kedo con ella!

Te cuento lo q hice d toas formas, metí los registros ordenados uno a uno en un array de arrays, dnd la posición del array era la posición de la lista,

y ya lo trataba con arrays, asi hacía solo una consulta, xo supongo q será más eficiente este otro, al menos, aparenta ser mas fino jeje

Muchas gracias!!!
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 10:33.