In diesem Leitfaden führen wir Sie durch die verschiedenen Methoden und Techniken, mit denen wir den neuesten Datensatz anhand des Datums aus einer Tabelle auswählen können.
Beispieldaten
Zu Demonstrationszwecken verwenden wir die Sakila-Beispieldatenbank, die für MySQL- und PostgreSQL-Varianten verfügbar ist.
Laden Sie die Beispieldatenbank gerne herunter und importieren Sie sie auf Ihren Server. Sie können bei Bedarf auch jeden anderen Datensatz verwenden.
Beispiel 1: ORDER BY
Die grundlegendste und einfachste Methode, mit der wir den neuesten Datensatz nach Datum abrufen können, ist die Verwendung einer SQL ORDER BY-Klausel.
Wir können die Datensätze basierend auf dem Datumswert in absteigender Reihenfolge ordnen und das Ergebnis dann auf nur eine Zeile beschränken.
Nehmen Sie zum Beispiel die Miettabelle aus der Sakila-Beispieldatenbank. Es enthält die Spalte „rental_date“, die das Datum angibt, an dem ein Film ausgeliehen wurde.
Damit können wir demonstrieren, wie man mit der ORDER BY-Klausel den aktuellsten Datensatz aus der Tabelle abruft.
WÄHLEN *
AB Vermietung
BEFEHL DURCH Mietdatum DESC
GRENZE 1 ;
In diesem Fall verwenden wir die ORDER BY-Klausel und übergeben das „rental_date“ als Zielspalte. Wir stellen außerdem sicher, dass die Datenbank angewiesen wird, die Datensätze in absteigender Reihenfolge zu ordnen.
Schließlich begrenzen wir auch die Anzahl der Ausgabedatensätze, die die neueste Zeile aus der Tabelle zurückgeben sollen.
Beispiel 2: Verwendung der Max()-Funktion
Wussten Sie, dass wir die Funktion max() für Datumswerte verwenden können? Ja, wir können eine einfache SQL-Unterabfrage und die Funktion max() für Datumswerte verwenden, um den neuesten Datensatz aus einer bestimmten Tabelle abzurufen.
Betrachten Sie das folgende Beispiel:
WÄHLEN *AB Vermietung
WHERE Rental_date = (SELECT MAX(rental_date) FROM Rental);
Mithilfe der Unterabfrage wird das maximale Mietdatum aus der Tabelle ermittelt. In der Hauptabfrage sollten wir die Datensätze mit einem „rental_date“ abrufen, das dem maximalen Datum entspricht.
Beispiel 3: Fensterfunktionen
Für Datenbanken, die die Fensterfunktionen unterstützen, können wir eine Unterabfrage und die Funktion row_number() verwenden, um den neuesten Datensatz wie folgt aus der Tabelle abzurufen:
WÄHLEN *AUS (
WÄHLEN *,
ROW_NUMBER() ÜBER ( BEFEHL DURCH Mietdatum DESC) AS rn
AB Vermietung
) AS-Unterabfrage
WO rn = 1 ;
Im gegebenen Beispiel weist die Unterabfrage jeder Zeile basierend auf der Spalte „rental_date“ in absteigender Reihenfolge mithilfe der Fensterfunktion ROW_NUMBER() eine Zeilennummer zu.
Die äußere Abfrage wählt dann alle Spalten aus der Unterabfrage aus, in denen die Zeilennummer 1 ist, und wählt somit effektiv die neuesten Mietdatensätze aus.
Abschluss
In diesem Beitrag haben wir die verschiedenen Methoden und Techniken untersucht, mit denen wir den neuesten Datensatz basierend auf einem Datum abrufen können.