我有一个记录游戏数据的表格,这是表格的一个示例:
id | player_name | date | score | kills
1 | test1 | 2013-01-01 00:00:00 | 10000 | 200
2 | test1 | 2013-01-01 00:01:00 | 12000 | 300
我有一个玩家排行榜,它对在特定时间段内获得最多分数/杀戮等的人进行排名。目前我只得到它,以便它在前 24 小时内对玩家进行排名。我通过选择指定时间段内的第一条和最后一条记录然后减去它们来获得差异来做到这一点。
这是我当前的查询:
SELECT date, score FROM datapoints WHERE player_name = :player AND date = (SELECT MIN(date) FROM datapoints WHERE player_name = :player AND date > DATE_SUB(CURDATE(), INTERVAL 24 HOUR))
UNION ALL
SELECT date, score FROM datapoints WHERE player_name = :player AND date = (SELECT MAX(date) FROM datapoints WHERE player_name = :player AND date > DATE_SUB(CURDATE(), INTERVAL 24 HOUR))
减去后,我使用 PHParsort()
函数对它们进行排序,然后将它们显示在页面上。
但是,我想添加另一个功能。我希望能够看到哪一天是用户得分/击杀的最佳日子。
我一直在想我怎么可能做到这一点,一个是使用上面的查询,但每天都有一个循环并取出最好的一天,但这可能不是很有效,我想知道,如果有一个这样做的更好方法?