MAX() befehl

EGJSoldier

Erfahrenes Mitglied
Hallo zusammen,
ich habe eiene Datenbank, in der die Tabelle `referenzen` exestiert. In der Tabelle sind Spalten mit den Namen datum, headline, details und picture. So ich möchte jetzt den Datensatz ausgeben, der als letztes geschrieben wurde(Also den Datensatz, mit dem aktuellstem Datum). Ich habe das mit dem max() Befehl versucht. Das ist aber in die Hose gegangen. Wie kriege ich die Abfrage so hin, das sie genau dies tut

Danke schon mal im voraus

MfG
EGJSoldier
 
Also das ist mein SQL- Code:
SELECT * FROM `referenzen` WHERE datum = max(SELECT datum FROM `referenzen`) .

Das ging in die Hose

MfG
EGJSoldier
 
Hi,
wenn das Datum als Timestamp oder im englischen Format vorliegt kannst du einfach nach dem Datum sortieren und dann mit "LIMIT 1" sagen, dass nur ein Datensatz ausgewählt werden soll.

Somit hättest du dann das neuste Datum.

mfg.Fide
 
Moin,

ich mache so etwas immer in zwei Schritten.
Zuerst
SQL:
 DELETE From referenzen 
Where Datum < (SELECT max(Datum) from Referenzen)

Danach kannst Du den gesuchten Satz mit einem einfachen
SQL:
SELECT * from Referenzen
.... komfortabelst anzeigen.

P.S. Syntax klappt auf meiner Datenbank TamaGochi Express 7.3.
Was hast Du für eine?
P.P.S. Wieviel Sätze sollen denn angezeigt werden bei mehreren "neuesten" Datumswerten, z.B. 21.4.2009?

...und red mich nie wieder mit "zsm" an.. ;-)

Grüße
Biber
 
Ok sry wegen dem zsm;-);
Also ich benutze die MYSQL Datenbank von XAMPP (PHPMyAdmin). Kann man die zwei "Befehle" auch zu einer reduzieren
Unzwar benutze ich den Befehl in einer Programmiersprache(PHP). Da wäre es mit nur einem Befehl einfacher


MfG
EGJSoldier
 
Ich würde es ähnlich wie Fide angehen. Nach Datum sortieren und dann halt ein Limit setzen, oder das aktuelle (oder gewünschte) Datum in die Where-Clause bringen - das geht natürlich mit jeder Programmiersprache auch dynamisch ;)

Den Ansatz von Biber2 finde ich hingegen nicht wirklich gut, nur um etwas anzuzeigen löscht man doch nicht in den Datenbanken herum.:suspekt:
 
Moin EGJSodlier

dann halt
SQL:
 SELECT * FROM Referenzen
WHERE Datum = (SELECT max(Datum) FROM Referenzen)

... oder wie oben von Fide gepostet mit einem
SQL:
 SELECT * FROM Referenzen
ORDER by Datum DESC
LIMIT 1

wobei "meine" Variante eben bei einem DATUMs-Feld auch schon mal 237 Datensätze bringen könnte, wenn es ein guter Tag war.
Bei TimeStamp-Feldern ist die Wahrscheinlichkeit wesentlich größer, dass nur ein Datensatz zurückkommt.

Grüße
Biber
 
Zurück