• 我们中的有些人,注定要在日常生活的点滴中去寻找生命的意义。---- 《生活大爆炸》|

Mysql语句排名问题

未分类 admin 10个月前 (11-05) 89次浏览 已收录 0个评论

使用场景:点赞排行榜 (页面中按照用户点赞的数量进行倒序,相同赞的已先发起的为先,同时页面需要显示当前登录用户的单独排名(名次按照总列表中来排))

获取总排行榜:

SELECT `hl`.*,`u`.`avatar`,`u`.`user_nickname`,@rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0) r, `cmf_user_hits_log` `hl` INNER JOIN `cmf_user` `u` ON `hl`.`user_id`=`u`.`id` WHERE `hl`.`game_id` = {$id} ORDER BY `hl`.`like_num` DESC,`hl`.`create_time` ASC

单独获取这个人在总排行中的单独排名:

SELECT b.* FROM (SELECT `hl`.*,`u`.`avatar`,`u`.`user_nickname`,@rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0) r, `cmf_user_hits_log` `hl` INNER JOIN `cmf_user` `u` ON `hl`.`user_id`=`u`.`id` WHERE `hl`.`game_id` = {$id} ORDER BY `hl`.`like_num` DESC,`hl`.`create_time` ASC) as b where `b`.`user_id` = {$userId}

可以参考一下文章:

CSDN: MySQL实现排名并查询指定用户排名功能


本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Mysql语句排名问题
喜欢 (0)

您必须 登录 才能发表评论!