问题是这样的数据表为游戏ID  用户ID  上传分数 上传时间每周都有不同的用户对不同的游戏上传自己游戏的分数要求找出每周每个不同游戏中的分数最高的前10名的记录请问如何高效的查找呢?谢谢

解决方案 »

  1.   

    try:select 游戏ID,用户ID,上传分数 from table 
    where datediff(now(),上传时间)<=7 and 游戏ID='wow'
    order by 上传分数 desc
    limit 0,10
      

  2.   

    select 游戏ID,用户ID,上传分数 from table 
    where 上传时间 > unix_timestamp(now()) - 7 * 24 * 3600 and 游戏ID='wow'
    order by 上传分数 desc
    limit 0,10查询最近7天的wow的积分最高的10个用户。当然如果你要查询确切的一周的 并且 不在 周末的最后时刻查询那么最好 动态生成 sql
    select 游戏ID,用户ID,上传分数 from table 
    where 上传时间 > unix_timestamp("周一零点") and 上传时间 < unix_timestamp('周末24点')and 游戏ID='wow'
    order by 上传分数 desc
    limit 0,10