时间:2021-07-01 10:21:17 帮助过:4人阅读
例子:
SET @ranking=0; select *,@ranking:=@ranking+1 AS `ranking` from table ORDER BY `members` DESC;
1. 先给用户变量 @ranking 赋值,mysql中用户变量以@开头,不用事先申明;
2. 然后按照某字段排序,返回字段中增加 如下代码:
@ranking:=@ranking+1
这样查询的结果中就包含 ranking 字段,表示当前排名。
遇到的问题:
1. 执行语句提示语法错误,分开执行就不会出错。
2. 数据分页
SET @ranking=当前第几页 * 每页数量;
3. 某条记录的排名
SET @ranking=0; select * from (select *,@ranking:=@ranking+1 AS `ranking` from table ORDER BY `members` DESC) as result where result.id = 17;
以上均为优化;
MySql 统计排名
标签: