Ankündigung

Einklappen
Keine Ankündigung bisher.

die letzten 20 Datensätze

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • die letzten 20 Datensätze

    Hi,

    ich möchte gerne die letzten (vom Timestamp her) 20 Datensätze in chronologischer Reihenfolge anzeigen lassen. Das klappt auch soweit, nur gibt es ne schönere Möglichkeit als das ganze via Subquery zu machen? Ich habs momentan so gelöst:

    Code:
    SELECT  *
    FROM
            (SELECT id,
                    time_start,
                    time_end
            FROM  mytable
            ORDER BY time_start DESC LIMIT 0,20
            ) AS tmp
    ORDER BY time_start ASC
    Gruß
    Cy

  • #2
    Clever, vielfach verhasst, aber: der Primaerschluessel ist auch ein Indikator fuer die Reihenfolge, in der die Daten eingetragen wurden (2. ORDER Bedingung z.B. dann). Faellt natuerlich das weg, wenn time_start danach veraendert wurde.

    Eins faellt noch auf: Gibst du Daten wirklich sofort aus, noch beim Auslesen? Dann solltest du dich mal mit MVC oder Templating beschaeftigen, da faellt das ganze naemlich (zumindest bei ersterem auf jeden Fall) weg:

    Controller ruft Daten der Klasse auf (sortiert sie anders bzw. laesst das machen, falls gewuenscht) und schickt sie danach an den View.

    [man]array_reverse[/man] gibts noch, aber das weisst du natuerlich. Denke man kann dein SQL-Statement so stehen lassen.
    "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

    Kommentar


    • #3
      Keine Ahnung ob es funktioniert aber wie wäre es mit sowas?
      Code:
      SELECT 
          id,
          time_start,
          time_end,
          COUNT(*) as myoffset
      FROM mytable
      ORDER BY time_start DESC
      LIMIT (myoffset - 20), 20
      Keine Ahnung ob sowas funktioniert aber so würdest du richtig sortieren und eben die letzten 20 Einträge auslesen ...

      *edit* wobei ich glaube das funktioniert gar nicht. Wenn ich LIMIT angebe müsste doch COUNT(*) genau dieses Limit von 20 ausgeben oder? Naja war nur ne Idee.

      Kommentar

      Lädt...
      X