Sehr spezifische MySQL-Abfrage, die ich verbessern möchte

Dies ist mein Szenario: Ich habe eine Tabelle, die Ereignisse enthält. Jedes Ereignis hat ein Feld mit dem Namen "Erstellt" mit dem Zeitstempel, in dem dieses Ereignis erstellt wurde. Jetzt muss ich die Ereignisse vom neuesten zum ältesten sortieren, aber ich möchte nicht, dass MySQL sie alle zurückgibt. Ich brauche nur das Neueste in einem bestimmten Intervall, zum Beispiel in einem Bereich von 24 Stunden (BEARBEITEN: Ich hätte gerne eine flexible Lösung, nicht nur für einen Bereich von 24 Stunden, sondern möglicherweise alle paar Stunden). Und ich brauche nur für die letzten 10 Tage. Ich habe das erreicht, aber ich bin mir sicher, dass es so ineffizient wie möglich ist:

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

Ich hoffe ich war klar genug. Danke, Jesús.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage