MySQL排行榜视图

MySQL排行榜视图,mysql,view,leaderboard,Mysql,View,Leaderboard,我有一个包含以下数据的表格 USER_ID | REVENUE 1 | 12,545 2 | 9,845 3 | 55,874 有没有一种方法可以让我在一个视图中创建一个即时排名的结果 USER_ID | REVENUE | RANK 3 | 55,874 | 1 1 | 12,545 | 2 2 | 9,845 | 3 我可以试着通过运行cron来实现这一点,但我希望结果是由MySQL在视图中实时生成的 欢迎任何其他选择。这是一种攻击,但作为两个独立的

我有一个包含以下数据的表格

USER_ID | REVENUE
1  | 12,545
2  | 9,845
3  | 55,874
有没有一种方法可以让我在一个视图中创建一个即时排名的结果

USER_ID | REVENUE | RANK
3  |   55,874  |  1
1  |   12,545  |  2
2  |   9,845   |  3
我可以试着通过运行cron来实现这一点,但我希望结果是由MySQL在视图中实时生成的


欢迎任何其他选择。

这是一种攻击,但作为两个独立的查询:

select @last:=0;

select USER_ID, REVENUE, @RANK := @RANK + 1 as RANK
from YOURTABLE
order by ...

是的,它可以在一个查询中完成

select user_id, 
       revenue, 
       @rank := rank + 1 as rank
from your_table, (select @rank := 0) r
order by revenue desc

这样做的问题是MySQL视图不能使用变量或参数!