Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[求助] [已解决]mysql 怎么查询出用户最近40分钟最高得分

[复制链接]
TeliuTe 发表于 2013-12-14 23:22:42 | 显示全部楼层 |阅读模式
本帖最后由 TeliuTe 于 2014-3-4 10:20 编辑

数据表pre_app_zflx结构如下,各个会员有多行记录, 第一条是最高分记录:
id         uid         name         score         time  
11          1          admin        90        1385584217
12          1          admin        66        1386896678
13          1          admin        76        1386897888
14          2          admi          50        1385584108
15          2          admi          32        1386899988
16          2          admi          16        1386899999

现在想要挑出每个会员最近40分钟内分数(score)最高的一行,得到类似:
id         uid         name         score         time  
13          1          admin        76        1386898888
15          2          admi          32        1386899988

以前是每个用户一条记录, 用下面就可以挑出来, 现在用户有多个记录, 还得先挑出最大的来
  1. $query = DB::query("SELECT $query = DB::query("select * from ".DB::table('app_zflx')." WHERE time > ".$tmptime." ORDER BY score DESC,gtime ASC");

复制代码
请教解决方法, 或好的思路


=======解决======================

  1. $tmptime = TIMESTAMP-2400;//当前时间减去40分钟
  2. $query = DB::query("SELECT `username`, `score_now`, `title_now`,`time_now` FROM ".DB::table('app_zflx_rk')."  WHERE `time_now`>" .$tmptime. " ORDER by `score_now` DESC, `time_now` DESC");

  3.     $i=1;//显示的时候,排名是从1开始
  4.     while ($value = DB::fetch($query)) {
  5.         $value ['time_now'] = dgmdate($value['time_now'], 'dt', $_G['setting']['timeoffset']);
  6.         $my_score[$i] = $value;//转存到一个二维数组变量lessontopArr
  7.         $i++;
  8.     }
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 21:50 , Processed in 0.016080 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表