码迷,mamicode.com
首页 > 数据库 > 详细

MySql 统计排名

时间:2015-06-09 17:55:01      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:


例子:

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 统计排名

标签:

原文地址:http://my.oschina.net/zhanyu/blog/464701

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!