sql datenbankausgabe auf letzte eingabe limitieren

Gast
>Aber das gibt doch nur den ersten Eintrag aus, oder ?

Ja, den 1. Eintrag der Tabelle die nach dem Primärschlüssel rückwärts 
sortiert (ORDER BY ... DESC) wurde.
Ergo steht der letzte Eintrag oben. Genau den wolltest du doch,
oder habe ich etwas falsch verstanden?
OP (Firma: privat)
Tim schrieb:
>>Aber das gibt doch nur den ersten Eintrag aus, oder ?
>
> Ja, den 1. Eintrag der Tabelle die nach dem Primärschlüssel *rückwärts*
> sortiert (ORDER BY ... DESC) wurde.
> Ergo steht der letzte Eintrag oben. Genau den wolltest du doch,
> oder habe ich etwas falsch verstanden?

Stimmt, hatte ich dann wohl falsch verstanden, also kam der Tipp mit 
Select * und so weiter Desk limit 1; von Dir - ja ?
Gast
ja, "SELECT * FROM tbl ORDER BY primärschlüssel DESC LIMIT 1;"
hatte ich vorgeschlagen und weiter?

ggf gibt es ja bei deiner Datenbank noch schneller möglichkeiten.
Also Dokumentation lesen...
OP (Firma: privat)
Tim schrieb:
> ja, "SELECT * FROM tbl ORDER BY primärschlüssel DESC LIMIT 1;"
> hatte ich vorgeschlagen und weiter?
>
> ggf gibt es ja bei deiner Datenbank noch schneller möglichkeiten.
> Also Dokumentation lesen...

Nun, ich wollte mich nur dafür bedanken, da der Code funktioniert - habe 
ihn nun schon auf nem anderen externen Server abgesichert, um ihn nicht 
auch wieder zu verliehren - Danke !
Hallo,

Wenn dein Primarykey auto-inkrement ist, bzw. dein letzter Eintrag immer 
den höchsten Wert hat, müsstest du mit folgendem Syntax deine letzte 
Eingabe abrufen können.

"SELECT * FROM tbl WHERE MAX(primärschlüssel);"

Gruß
das ganze ist trotzdem mit Vorsicht zu genießen.
wenn mehrere auf die Datenbank zugreifen (dafür sind sie ja schließlich 
da) kann es natürlich sein, dass der letzte Datensatz nicht der ist, den 
du zu finden erwartest.

hierfür muss das insert und das select teil einer transaktion sein.
OP (Firma: privat)
Vlad Tepesch schrieb:
> das ganze ist trotzdem mit Vorsicht zu genießen.
> wenn mehrere auf die Datenbank zugreifen (dafür sind sie ja schließlich
> da) kann es natürlich sein, dass der letzte Datensatz nicht der ist, den
> du zu finden erwartest.
>
> hierfür muss das insert und das select teil einer transaktion sein.

sorry, aber das verstehe ich nun überhaupt nicht.
die Sache mit dem PK hat aber einen Haken. Denn die Reihenfolge des PK's 
muß schließlich nicht mit der Reihenfolge der Eingaben zusammenhängen 
(je nachdem, was verantwortlich für das Auffüllen des PK ist).
Ich würde sowas evtl. mit einer Zusatzspalte machen, die automatisch mit 
jedem Insert einen höheren Wert bekommt, z.B. autoincrement, oder aber 
current Timestamp, den man als Default eintragen läßt, so daß man sogar 
weiß, wann was eingetragen wurde (weis nicht, ob das deine DB kennt). 
Das von Läubi angegebene last_insertid() kenne ich dagegen nicht - kenne 
mich mit SQL Server nicht weiter aus.
OP (Firma: privat)
Jens G. schrieb:
> die Sache mit dem PK hat aber einen Haken. Denn die Reihenfolge des PK's
> muß schließlich nicht mit der Reihenfolge der Eingaben zusammenhängen
> (je nachdem, was verantwortlich für das Auffüllen des PK ist).
> Ich würde sowas evtl. mit einer Zusatzspalte machen, die automatisch mit
> jedem Insert einen höheren Wert bekommt, z.B. autoincrement, oder aber
> current Timestamp, den man als Default eintragen läßt, so daß man sogar
> weiß, wann was eingetragen wurde (weis nicht, ob das deine DB kennt).
> Das von Läubi angegebene last_insertid() kenne ich dagegen nicht - kenne
> mich mit SQL Server nicht weiter aus.

Das läuft auf autoincrement ID
Persönliche Seite
Nein die Last Insert ID hat den Wert des letzten Inserts dieser kann 
aber ungleich dem aktuellem autoincrement sein...

Siehe: http://dev.mysql.com/doc/refman/5.1/de/information-functions.html

Wenn ich also den Wert für die auto_increment spalte (welche 
optimlaerweise  auch der Primary key ist) vorgebe hat es auch diesen 
Wert, wurde der Wert automatisch vergeben hat er eben jenen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.