Saltar al contenido

Mysql – ¿Cómo obtener un número de fila después de Order by?

Solución:

Esta respuesta debería funcionar para usted:

SET @rank=0;
SELECT @rank:[email protected]+1 AS rank, p_id FROM point_table ORDER BY points DESC;

Actualizar: También puede considerar calcular el rango al actualizar los puntos y guardarlo en una columna adicional en la misma tabla. De esa forma también puede seleccionar un solo usuario y conocer su rango. Depende de sus casos de uso lo que tenga más sentido y funcione mejor.

Actualizar: La solución final que resolvimos en los comentarios se veía así:

SELECT
rank, p_id
FROM
    (SELECT
     @rank:[email protected]+1 AS rank, p_id, userid
     FROM
     point_table, (SELECT @rank := 0) r
     ORDER BY points DESC
    ) t
WHERE userid = intval($sessionuserid); 

Número de fila después de ordenar por

SELECT ( @rank:[email protected] + 1) AS rank, m.* from                                   
(                            
  SELECT a.p_id, a.userid                                                   
  FROM (SELECT @rank := 0) r, point_table a 
  ORDER BY a.points DESC                                                     
) m
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *