繁体   English   中英

如何在MySQL中获取colName为TimeStamp类型的max(colName)值

[英]How to get max(colName) value where colName is of Type TimeStamp in mySQL

我有以下表格结构 在此处输入图片说明 并在此表中包含以下数据 在此处输入图片说明 现在,我想以一种方式进行查询,以便可以获取所有列的值+特定game_id的max(currenttime)的值。

我正在运行以下查询SELECT _id,game_id,inning_id,scoretype,oponentonescore,oponenttwoscore,currenttime,MAX(currenttime)AS最新FROM game_scores WHERE game_id ='2268'

结果我只得到一行,如下结果 在此处输入图片说明 但是我想要所有符合条件的行(即游戏ID 2268)

如何撰写Query来达到这个目的?

提前致谢

您的MAX()是一个聚合类型函数,对于多行获取一个值。

因此,将其删除并在PHP中使用类似的内容...

$maxTime = 0;

foreach($rows as $row) {
   $maxTime = max($maxTime, strtotime($row['currenttime']));
}

...或运行另一个查询,尽管以上内容就足够了...

SELECT MAX(`currenttime`) AS `latest`
  FROM `game_scores`
 WHERE `game_id` = '2268'

格式化为您方便的OMG Ponies 样式

对不起,我还没有真正测试过,但是像这样的东西可能会解决问题:

SELECT
    _id,
    game_id,
    inning_id,
    scoretype,
    oponentonescore,
    oponenttwoscore,
    currenttime,
    latest
FROM
    game_scores
JOIN (
    SELECT
        MAX(currenttime) AS latest
    FROM
        game_scores
    WHERE
        game_id = '2268'
) AS latest_calculation
WHERE game_id = '2268';

尽管此解决方案在数据库上比在解决方案上重,但在从数据库返回查询后将其找出来的应用程序却很繁重(如建议的alex)。

该查询行上的内容可以满足要求。 未测试。

 SELECT _id, game_id, inning_id, scoretype, oponentonescore, oponenttwoscore,
    currenttime,maxtime from game_scores OUTER join (SELECT _id,MAX(currenttime)
    as maxtime from game_scores) as t on t._id = game_scores._id  where game_id = '2268';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM