Php 高分(高分)排名计算和更新查询?
我有一个高分高分系统,它根据球员的经验计算位置。 但是现在我需要在其他地方使用玩家的排名,比如在网络上,也许更多的地方也像个人网站一样 高分,它将显示玩家在该技能中的排名 因此,像rank++那样循环&玩循环循环不会真正起作用,因为我需要保存该排名以备将来使用 其他地方 我所能做的就是遍历所有玩家,然后发送一个查询来更新该玩家的排名,但是如果我有1000名玩家呢?还是更多? 这意味着每次加载1000个查询 我想如果有一个SQL查询,我可以用它在一两个查询中执行相同的操作 我该怎么做?我根据玩家的经验排序计算等级,因此我的表结构如下所示: 表: 球员 id自动递增整数255 displayname varchar255唯一 秩整数255默认为空 体验bigint255Php 高分(高分)排名计算和更新查询?,php,mysql,Php,Mysql,我有一个高分高分系统,它根据球员的经验计算位置。 但是现在我需要在其他地方使用玩家的排名,比如在网络上,也许更多的地方也像个人网站一样 高分,它将显示玩家在该技能中的排名 因此,像rank++那样循环&玩循环循环不会真正起作用,因为我需要保存该排名以备将来使用 其他地方 我所能做的就是遍历所有玩家,然后发送一个查询来更新该玩家的排名,但是如果我有1000名玩家呢?还是更多? 这意味着每次加载1000个查询 我想如果有一个SQL查询,我可以用它在一两个查询中执行相同的操作 我该怎么做?我根据玩家的
这将为id=1的用户提供排名。如果您想要每个玩家,只需删除WHERE子句: 选择a.id、a.displayname、a.rank、a.experience 从…起 选择id、displayname、@r:=@r+1作为等级、经验 从玩家中选择@rank:=0 tmp 按经验顺序描述 其中a.id=1 我不会直接在players表中排名,因为这意味着每次用户更改体验时都必须重新计算排名。您可以在任何时候查询球员或排行榜的排名
如果仍要更新它,可以使用此查询进行内部联接,以使用此查询中的列组更新原始表。显示要从中提取列组的原始表结构,以及要使用列组的表users@FilipeSilva不确定你想要哪种结构,但如果有帮助的话,我已经编辑了它。出于某种原因,它实际上不能正常工作。我有两个用户,一个是2147 xp,一个是5 xp,一个是2147 xp,一个是排名2,另一个是排名1?