我最近与Riot Games API合作,并且到了需要帮助的地方或者如何实现这一点的示例。我在mysql中有一个名为" summoners"的数据库。表中的每个召唤者都是这样的:
有6层(坏到好):BRONZE<银<黄金< PLATINUM< DIAMOND<挑战者 共有5个部门:I< II< III< IV< V
我想要达到的目的是将它们排在一起(等级,分区和联盟点)并输出等级数字:
123311:排名#1
234453422:排名第2
123123:RANK#3
234234234:排名第4
不确定如何做到这一点,在服务器上选择数据库中的大量数据会很难吗?
答案 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 those(mysql documentation)
如果您需要直接在查询输出中排名(您可能会在应用程序代码中运行计数器),look at this question