Heim >Datenbank >MySQL-Tutorial >Wie kann ich die neueste Zeile für eine bestimmte ID basierend auf Zeitstempeln effizient abrufen?

Wie kann ich die neueste Zeile für eine bestimmte ID basierend auf Zeitstempeln effizient abrufen?

Barbara Streisand
Barbara StreisandOriginal
2025-01-01 10:37:16573Durchsuche

How to Efficiently Retrieve the Latest Row for a Given ID Based on Timestamps?

Abrufen der neuesten Zeile für eine angegebene ID

Wie können Sie in einer Tabelle, die mehrere Zeilen mit derselben ID enthält, effizient nur die Zeilen extrahieren? Neueste Zeile basierend auf Zeitstempeln? Betrachten Sie die Beispieltabelle:

| id | signin              | signout |
+----+---------------------+---------+
|  1 | 2011-12-12 09:27:24 | NULL    |
|  1 | 2011-12-13 09:27:31 | NULL    |
|  1 | 2011-12-14 09:27:34 | NULL    |
|  2 | 2011-12-14 09:28:21 | NULL    |
+----+---------------------+---------+

Um dies zu erreichen, können Sie Aggregatfunktionen und Unterabfragen verwenden.

Verwenden von Aggregate MAX()

The Mit der Funktion „Aggregate MAX()“ kann der Zeitstempel der letzten Anmeldung für jede ID ermittelt werden. Indem Sie die Ergebnisse nach der ID-Spalte gruppieren, können Sie den maximalen Anmeldezeitstempel für jede eindeutige ID ermitteln.

SELECT 
 id, 
 MAX(signin) AS most_recent_signin
FROM tbl
GROUP BY id

Abrufen der vollständigen Zeile

Um die gesamte Zeile abzurufen Verwenden Sie in der Zeile, die der letzten Anmeldung für eine bestimmte ID entspricht, einen INNER JOIN für eine Unterabfrage, die den maximalen Anmeldezeitstempel pro zurückgibt ID.

SELECT 
  tbl.id,
  signin,
  signout
FROM tbl
  INNER JOIN (
    SELECT id, MAX(signin) AS maxsign FROM tbl GROUP BY id
  ) ms ON tbl.id = ms.id AND signin = maxsign
WHERE tbl.id=1

Diese Abfrage gibt den vollständigen neuesten Datensatz mit> zurück

Das obige ist der detaillierte Inhalt vonWie kann ich die neueste Zeile für eine bestimmte ID basierend auf Zeitstempeln effizient abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn