在MySQL中,不存在类似于SQL Server或Orcal等中的rank()函数来得到排名;所以我们需要手动地写这个rank功能。
看我给大家手撸个MySQL rank()函数,来自于MySQL中实现rank排名查询_@rank mysql_justry_deng的博客-CSDN博客
方法一
1.先赋值
set @curRank := 0;
2.再查询
select 字段,@curRank := @curRank + 1 as rank
from 表 order by 你想排序的那个字段
3.实例
有一表table,里面有三个字段,int id, string name, int age
set @curRank := 0 ;
select id, name, age , @curRank := @curRank + 1
from table order by age desc;
方法二
1.查询和变量赋值同时进行
select id , name, age ,@curRank := @curRank +1
from table ,(select @curRank := 0)
order by age desc ;
2.语句解析
select @curRank := 0 相当于方法一中的赋值,只不过在这里作为一个表被select出来。
类似于select * from a,b中的表b