MySQL,在X个小时内返回所有结果
我的表由多个列组成,包括unixtimestamp:MySQL,在X个小时内返回所有结果,mysql,sql,Mysql,Sql,我的表由多个列组成,包括unixtimestamp: CREATE MyTable( id INT NOT NULL AUTO_INCREMENT, ... timeStart INT(11) )ENGINE=MyISAM; 新项目会不断插入到此表中 我需要返回带有时间戳>(最大(开始时间)-X_持续时间)的所有项目 我有兴趣编写一个单一的优化查询来实现它 一种简单的方法是编写嵌套的select,其中内部select将MAX(timeStart)返回为maxTime,而不是选
CREATE MyTable(
id INT NOT NULL AUTO_INCREMENT,
...
timeStart INT(11)
)ENGINE=MyISAM;
新项目会不断插入到此表中
我需要返回带有时间戳>(最大(开始时间)-X_持续时间)的所有项目
我有兴趣编写一个单一的优化查询来实现它
MAX(timeStart)返回为maxTime
,而不是选择大于where子句中的所有记录SELECT *
FROM tableName
WHERE timeStart > (SELECT MAX(timeStart) + INTERVAL -1 SECOND FROM tableName)
列timeStart
上添加索引即可。事实上,我有这样一个索引,还有更多的解决方案吗?如果您认为这是最理想的解决方案,请编辑您的答案以反映它,我将接受它。我认为它会更糟糕,因为这仍然是连接的嵌套选择,我需要检查性能。@Michael,那么您还需要什么?获取最大值需要使用聚合进行计算。我想你别无选择