事情是这样的,每个人都会完成任务,每个人完成任务的个数都不一样,我现在想要获得userid对应的名次,
一张表是用户和任务的关系,一张表是任务成功与否
现在一个是想获得单人在所有人中的排名,还有一个是所有人的排名,以及对应的姓名等等,上图!!!
MySQL的数据库 jdk1.7
![
萌新一个,求大牛们帮帮我
想获得单人在所有人中的排名,还有一个是所有人的排名,以及对应的姓名等等
使用sql语句,,获取所有人的排名,不难,,,获取单人在所有人中排名(这个有点意思,我还没想好)
你可以先获取所有人的排名(包含姓名,什么的信息)
然后在代码中处理,,单人在所有人中的排名,,难度不大
就是想传入userId然后获得该用户的排名,还有个功能是获得所有人的排名名次什么的。。。最好是一个SQL写出来
不好意思。。刚刚图重了
你可以这样呀 在表中添加一个字段 记录完成任务的个数 这样排序不就很简单了
那我直接给你思路就好了,查询你肯定会的。排名的话,不管单人的还是全部的都需要先查询所有人,select ROW_NUMBER()OVER(ORDER BY count(成功任务 DESC)) as '排名' from Table where ..... order by ROW_NUMBER()OVER(ORDER BY count(成功任务) DESC (这里可能不需要orderBy 也可能都不需要DESC 具体的还要你去试一试,手边没有合适的数据库去测试) 这个就是查排名 其他的信息就自己查就好了() 然后单人的在查询出所有人的之后根据userId取拿相应的排名就好了
我可以获得所有人的排名,但是用where加上去就只有一个用户, 默认排名变成1了。。
路过。。。标记。。。等看最终结果。。。。