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);
selectuser\u id
notuserid
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