Php 如何使用mysql查询显示排名

Php 如何使用mysql查询显示排名,php,mysql,sql,Php,Mysql,Sql,和查询: user_id | date | point 1 20 4 2 20 3 3 20 2 1 21 1 2 21 3 3 21 5 1 23 2 2 23 4 3 23 5 如何在此查询中显示排名?首先,您需要首先将delcare@row

和查询:

user_id | date | point
    1      20      4
    2      20      3
    3      20      2
    1      21      1
    2      21      3
    3      21      5
    1      23      2
    2      23      4
    3      23      5

如何在此查询中显示排名?

首先,您需要首先将delcare@row作为变量

类似于
set@row=0;从用户组中选择用户id,总和(点)作为点,@row:=@row+1作为排名,按用户id按总和(点)描述排序

试试这个

SELECT user_id, SUM(point) AS point, @row:=@row+1 rank FROM users GROUP BY user_id

您可以使用以下方法处理声明零件:

SET @row=0;
SELECT user_id, SUM(point) AS point, @row:=@row+1 rank FROM users GROUP BY user_id

我想你应该这样写:

SELECT user_id, SUM(point) AS point, @row:=@row+1 rank FROM users, (SELECT @row := 0) r GROUP BY user_id
试试这个

SELECT user_id, SUM(point) AS point, @row:=@row+1 AS rank FROM users GROUP BY user_id JOIN (SELECT @row := 0) r;

应具有AS to别名@row to rank和order by on point,以使其按正确的顺序排列:-

SELECT user_id,points, @row:=@row+1 AS Row 
from (
  SELECT user_id, 
    SUM(point) AS points  rank 
  FROM users 
  GROUP BY user_id 
  Sort by points);

select
user\u id
not
userid
SELECT user_id, SUM(point) AS point, @row:=@row+1 AS rank 
FROM users 
CROSS JOIN (SELECT @row:=0) Sub1
GROUP BY user_id
ORDER BY point DESC