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视图不能使用变量或参数!