2016-11-13 5 views
1

Ich habe eine Tabelle mit IDs, Produktnamen und einem TIMESTAMP-Feld einschließlich 'ON UPDATE CURRENT_TIMESTAMP'. Daher erhält der Zeitstempel jedes Mal, wenn ein Produkt berührt wird, den letzten Zeitstempel.Ordnen Sie nach Zeitstempel, aber durch das neueste Datum zu begrenzen

Die Tabelle wird importiert, und ich versuche, nur die neueste Ergänzung zu erhalten und kann die alten Daten nicht entfernen.

Vereinfacht Tabelle unten:

ID, Product, timestamp 
1,  A, 2016-10-20 15:10:39 
2,  B, 2016-09-10 12:41:21 
3,  C, 2016-10-20 15:11:55 
4,  D, 2016-08-01 16:18:21 
5,  E, 2016-10-19 10:00:12 
6,  F, 2016-09-10 12:41:20 

Ich versuche, die folgende Ausgabe zu erhalten:

ID, Product, timestamp 
1,  A, 2016-10-20 15:10:39 
3,  C, 2016-10-20 15:11:55 

Grundsätzlich ich über die Zeit Teil des Zeitstempels ist es egal ... nur das Datum. Gibt es eine Möglichkeit, die Ausgabe auf das letzte Datum im Zeitstempelfeld zu beschränken, unabhängig davon, welches aktuelle Datum tatsächlich ist?

Antwort

2

Ein Ansatz verwendet eine Unterabfrage das Maximum (jüngste) Datum zu identifizieren, und schränkt dann nur Datensätze, die dieses Datum teilen:

SELECT * 
FROM yourTable 
WHERE DATE(timestamp) = (SELECT MAX(DATE(timestamp)) FROM yourTable) 
-- ORDER BY timestamp (or whatever column you want to use for ordering) 
+0

ich werde testen, aber diese sortiert die ganze Zeitstempel nicht wahr? ID 1 und 3 haben dasselbe Datum, aber andere Zeitstempel? – uberconversion

+0

Diese Abfrage entspricht meiner Anforderung soweit ich weiß. Bitte versuchen Sie es und kommen Sie dann zurück, wenn es Probleme gibt. –

Verwandte Themen