PHP MySQL排名系统

时间:2014-11-25 20:48:06

标签: php mysql sql

我最近与Riot Games API合作,并且到了需要帮助的地方或者如何实现这一点的示例。我在mysql中有一个名为" summoners"的数据库。表中的每个召唤者都是这样的:

enter image description here

有6层(坏到好):BRONZE<银<黄金< PLATINUM< DIAMOND<挑战者 共有5个部门:I< II< III< IV< V

我想要达到的目的是将它们排在一起(等级,分区和联盟点)并输出等级数字:

123311:排名#1

234453422:排名第2

123123:RANK#3

234234234:排名第4

不确定如何做到这一点,在服务器上选择数据库中的大量数据会很难吗?

1 个答案:

答案 0 :(得分:2)

ORDER BY 
  FIND_IN_SET(tier,'CHALLENGER,DIAMOND,...'),
  FIND_IN_SET(division,'V,IV,III,II,I'),
  leaguepoints DESC;

然而,对你来说这不够高效,你可以开始using ENUM's and sort on thosemysql documentation

如果您需要直接在查询输出中排名(您可能会在应用程序代码中运行计数器),look at this question