Select Query
-
wie kann ich mir die 10 neuesten Datensätze aus einer Datenbank ausgeben lassen. Habe ein Primärschlüsselfeld, mit Autowerteigenschaft Über
Select Max und dann select ... where Felname > Select Max-10 and Feldname <= SelectMax geht nicht.
Es kann sein daß ich gelegentlich unsinnige Datensätze aus der Datenbank entferne und somit hab ich keine durchgehende Nummerierung mehr in dem Autowertfeld.
Wie kann ich das lösen?
-
Das DBMS ist MySql
-
geht wohl nur, wenn du auch einen timestamp o.ä. pro datensatz mit speicherst. diese auto-increment id's sind zwar eindeutig aber müssen nicht zwangsläufig in der richtigen reihenfolge sein
-
select * from table order by id desc limit 10
und schon hast du die 10 werte mit der höchsten id.
-
Ich habe dann ein weiteres feld aber wie formulier ich es daß nur die 10 letzten Werte ausgegeben werden. Mir fällt dazu keine Query ein und auch keine Funktion.
Den größte wert kein prob den kleinsten auch nicht aber die letzten 10. Wie soll ich das formulieren select * from test where timstamp=??? Ich kann ein festes datum eingeben und erst ab dann auswählen aber die letzten 10?
Wenn jemand so was weiß bitte posten.
Ich habe einen workaround gefunden. Ich mach eine Select Abfrage über alle Datensätze und sortiere Sie absteigend. Dann hol ich auf der PHP seite nur die ersten 10 Werte aus dem Array raus. Nicht gerade sehr elegant aber mir fällt nichts anderes ein.
Wie gesagt wenn jemand so ne query weiß wo das geht ohne meinen Workaround, dann bitte posten.
thx und cu
-
Hat die Shade schon gesagt.
Die AUTOINC. ist immer Aufsteigend solange Du sie nicht selbst änderst.
Dh. die höchsteist immer die letzte. Da braucht es keinen Timestamp auch wenn du dazwischen etwas löschst.
Wichtig ist das Du sie nicht selbst einfügst osndern dies der DB überläßt.
-
Stimmt das Limit gibts ja auch nocb
thx