Markus Bauer: Tabelle verkehrt ausgeben

Hallo!

Ich habe eine Tabelle in mySQL, von der ich nur einen Teil aber umgedreht ausgeben möchte. Die Tabelle hat eine Spalte "timestamp" und nach der soll sortiert werden.
Nun will ich die letzten 10 Datensätze haben, wobei aber der älteste ganz unten sein soll? Wie mache ich das?

SELECT text FROM tab ORDER BY timestamp DESC  LIMIT 0, 10 funktioniert nicht, da werden mir immer die letzten oben ausgegeben

  1. Hello,

    Ich habe eine Tabelle in mySQL, von der ich nur einen Teil aber umgedreht ausgeben möchte. Die Tabelle hat eine Spalte "timestamp" und nach der soll sortiert werden.
    Nun will ich die letzten 10 Datensätze haben, wobei aber der älteste ganz unten sein soll? Wie mache ich das?

    SELECT text FROM tab ORDER BY timestamp DESC  LIMIT 0, 10 funktioniert nicht, da werden mir immer die letzten oben ausgegeben

    Mit einem Self-Join? Das könnte doch klappen, oder?

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Mit einem Self-Join? Das könnte doch klappen, oder?

      Vielen Dank für deine Hilfe aber wie meinst du das genau?

      Markus

      1. Hello,

        Mit einem Self-Join? Das könnte doch klappen, oder?

        Vielen Dank für deine Hilfe aber wie meinst du das genau?

        Ein self-Join besteht dann, wenn man dieselbe Tabelle in zwei Arbeitsbereichen eröffnet und diese miteinander verknüpft. Wenn das DBMS das hergibt, kann man auch Subselects machen, was aber eigetlich intern fast dasselbe bedeutet.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hi,

          Mit einem Self-Join? Das könnte doch klappen, oder?

          Vielen Dank für deine Hilfe aber wie meinst du das genau?

          Ein self-Join besteht dann, wenn man dieselbe Tabelle in zwei Arbeitsbereichen eröffnet und diese miteinander verknüpft. Wenn das DBMS das hergibt, kann man auch Subselects machen, was aber eigetlich intern fast dasselbe bedeutet.

          Hmm, ja ich weiss grundsätzlich was ein Self-Join ist. Aber das Problem ist ja, soweit ich das sehe, dass ich das LIMIT nur ganz hinten hinstellen kann.
          D.h. die Tabelle müsste schon so sortiert sein, dass die ersten 10 Elemente oben genau umgedreht dargestellt sind und das ist doch nicht möglich oder doch??

  2. yo,

    Nun will ich die letzten 10 Datensätze haben, wobei aber der älteste ganz unten sein soll? Wie mache ich das?

    mit unterabfragen. die unterabfrage ermittelt den 10 kleinsten zweitwert. diesen setzt du dann in der anderen abfrage in der WHERE klausel ein, wo alle werter kleiner oder gleich diesem wert sein müssen und sortierst entsprechend.

    Ilja

  3. Hallo Markus!

    Ich habe eine Tabelle in mySQL, von der ich nur einen Teil aber umgedreht ausgeben möchte. Die Tabelle hat eine Spalte "timestamp" und nach der soll sortiert werden.
    Nun will ich die letzten 10 Datensätze haben, wobei aber der älteste ganz unten sein soll? Wie mache ich das?

    SELECT text FROM tab ORDER BY timestamp DESC  LIMIT 0, 10 funktioniert nicht, da werden mir immer die letzten oben ausgegeben

    Wenn dein einziges Problem darin besteht, dass die gewünschten Werte nur in der verkehrten Reihenfolge ausgegeben werden, die Werte aber die gewünschten sind, so sortier die 10 Werte doch einfach mit Php ? Oder habe ich da etwas missverstanden?

    freundliche Grüße,
    Daniel Petratsch