Sönke Tesch: sql: letzten datensatz mit bestimmtem inhalt auslesen

Beitrag lesen

ich mittels sql den letzten datensatz, welcher in einem feld einen bestimmten inhalt hat, auslesen.

SELECT id FROM tabelle WHERE alter = '$18' <- was muss da noch hin, dass er den letzten datensatz ausliest, in dem das vorkommt?

Auf die Reihenfolge von Datensätzen kann man sich nicht unbedingt verlassen, von daher brauchst Du in jedem Fall eine Sortierung:

SELECT id FROM tabelle WHERE alter=18 order by name

Und sortieren kann man nicht nur aufwärts, sondern auch abwärts:

SELECT id FROM tabelle WHERE alter=18 order by name desc

[desc=descending, absteigend]

Willst Du den zeitlich letzten Eintrag, mußt Du eine Spalte vom Typ timestamp oder datetime hinzufügen und diese beim Sortieren zur Hilfe nehmen. Beachte, daß timestamp automatisch auf die aktuelle Zeit gesetzt wird, allerdings nicht nur beim Erstellen des Eintrags, sondern auch bei jeder Änderung. datetime hat hingegen keine Automatik, benutze die SQL-Funktion now(), um ein derartiges Feld bei Bedarf zu setzen.

Gruß,
  soenk.e