首页 > 数据库技术 > 详细

MySql 统计排名

时间:2015-06-09 17:52:02      阅读:246      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!