Bardzo specyficzne zapytanie MySQL, które chcę poprawić

Oto mój scenariusz: mam tabelę zawierającą zdarzenia, każde zdarzenie ma pole o nazwie „utworzone” ze znacznikiem czasu, w którym to zdarzenie zostało utworzone. Teraz muszę posortować zdarzenia od najnowszego do najstarszego, ale nie chcę, aby MySQL zwracał je wszystkie. Potrzebuję tylko ostatniego w danym przedziale czasu, na przykład w zakresie 24 godzin (EDYCJA: Chciałbym mieć elastyczne rozwiązanie, nie tylko przez 24 godziny, ale może co kilka godzin). I potrzebuję tylko przez ostatnie 10 dni. Osiągnąłem to, ale jestem pewien, że w najbardziej nieefektywny sposób, to jest coś takiego:

$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;
    }
}

Mam nadzieję, że byłam wystarczająco jasna. Dzięki, Jesús.

questionAnswers(6)

yourAnswerToTheQuestion