php – 我想改进的非常具体的MySQL查询
这是我的场景:我有一个包含事件的表,每个事件都有一个名为“created”的字段,其中包含创建该事件的时间戳.现在我需要将事件从最新到最旧排序,但我不希望MySQL将它们全部返回.我只需要给定间隔内的最新版本,例如24小时内(编辑:我想要一个灵活的解决方案,不仅是24小时范围,而且可能每隔几个小时).我只需要过去10天.我已经实现了这一点,但我确信以最低效的方式,即类似的东西:
$timestamp = time();
for($i = 0; $i < 10; $i++) {
$query = "SELECT * FROM `eventos` WHERE ... AND `created` < '{$timestamp}' ORDER BY `created` DESC LIMIT 1";
$return = $database->query( $query );
if($database->num( $return ) > 0) {
$event = $database->fetch( $return );
$events[] = $event;
$timestamp = $timestamp - 86400;
}
}
我希望我很清楚.谢谢,耶稣.