MySQL - 选择间隔近似的行

时间:2013-08-20 04:27:20

标签: mysql

我经营一个致力于跟踪在线游戏玩家统计数据的网站。该网站的一个功能是为他们建立图表,以跟踪他们过去2000场比赛的进展情况。

我目前正在做的是使用此查询获取所有记录,然后使用PHP以大约100次战斗的增量选择记录,直到我拥有构建图表所需的20条记录:

SELECT DISTINCT battles, victories, survived, destroyed, detected, 
       hitratio, damage, capture, defense, avg_exp, efficiency 
  FROM account_stats 
 WHERE account_id = XXXXXXX 
   AND battles >= ZZZZZZZ;

ZZZZZZZ是他目前的战斗数量减去2000.我使用的是不同的,因为数据库可以保留重复值(这是因为一些历史功能)。

我必须使用近似值的原因是因为我从游戏的API中获取数据,所以在一次检查中,他可能玩了多个游戏。这意味着在数据库中,“战斗”计数将以不同的增量进行。

使用上面的查询只会查杀数据库服务器,因为它会在磁盘上创建大量临时表,从而使整个网站都被抓取。

所以我的问题是:有没有办法可以在数据库中精确选择20行,选择CLOSEST到100次战斗的行,而不使用DISTINCT / GROUP BY /在磁盘上创建临时表的任何内容? / p>

提前致谢!

0 个答案:

没有答案