Очень специфический запрос MySQL, который я хочу улучшить

Это мой сценарий: у меня есть таблица, содержащая события, каждое событие имеет поле с именем «создан»; с отметкой времени, в которое было создано это событие. Теперь мне нужно отсортировать события от самых новых до самых старых, но я не хочу, чтобы 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;
    }
}

Надеюсь, я был достаточно ясен. Спасибо, Джес & # XFA; с.

Ответы на вопрос(6)

Ваш ответ на вопрос