php mysql 获取排名_PHP+mysql 实现排名并查询指定用户排名

PHP+mysql 实现排名并查询指定用户排名

情形如下:

对用户表里的所有用户 的积分大小 【point 】实现排名  并 得到某一个用户的积分的具体排名

1、首先,对所有用户进行排名

$sql = "SELECT t.*, @rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0) r,(SELECT uid,point FROM user ORDER BY `point` DESC) AS t ";

$sql = "SELECT t.*, @rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0) r,(SELECT uid,point FROM user ORDER BY `point` DESC) AS t ";

注释:1、 SELECT @rownum := 0:表示对rownum赋初始值0

2、@rownum := @rownum + 1:表示对rownum加1,语句中会从1开始,每一行往下都自动加1

上述代码会根据user表中的point从大到小进行排序。

2、得到某个特定用户的排名

原理:把上步得到的数据看做一张表,根据uid 来查询特定用户的排名

$sql = "SELECT b.uid,b.rownum FROM(SELECT t.*, @rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0) r,(SELECT uid,point FROM user ORDER BY `point` DESC) AS t) AS b WHERE b.uid = {$uid} ";

查询结果:{"uid":"300462","rownum":"10"}

其中 rownum 即对应该用户的排名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值