Thomas: MySQL: letzte x einträge aufsteigend

Hallo,

komisch, die Suche ergab nur einen nicht relevanten Treffer, dabei müsste das doch ein gängiges Problem sein: http://suche.de.selfhtml.org/cgi-bin/such.pl?suchausdruck=mysql+letzte+eintr�ge+aufsteigend&feld=alle&index_5=on&index_6=on&hits=100

...also ich möchte einfach nur z.B. die letzten 10 Einträge in _aufsteigender_ Reihenfolge haben.

Das hier gibt mir zwar die letzten 10 Einträge, ich möchte diese aber in umgekehrter Reihenfolge haben (id ist auto_increment):

mysql> SELECT * FROM table ORDER by id DESC LIMIT 0,10;

Geht das irgendwie mit einer Abfrage (also ohne vorher die Einträge zu zählen und dann das LIMIT entsprechend anzupassen)?

Danke!
Thomas

  1. mysql> SELECT * FROM table ORDER by id DESC LIMIT 0,10;

    Hi,

    wie wäre es, wenn du statt DESC ASC verwendest?

    Nils

    1. Hallo,

      wie wäre es, wenn du statt DESC ASC verwendest?

      Dann habe ich die ersten statt die letzten Einträge.

      Thomas

  2. yo,

    mysql> SELECT * FROM table ORDER by id DESC LIMIT 0,10;

    der erste schritt ist die sortierung zu ändern also nach id ASC. der zweite schritt besteht darin, das limit so zu verändern, so das nicht vom ersten datensatz begonnen wird, sondern von dem 10. letzten an. bin mir selbst nicht sicher, ob mysql in limit aggregat-funktionen erlaub. aber im zweifel kannst du eine zweite abfrage dafürr verwenden.

    Ilja

    1. Hi,

      hm zweite abfrage würd ich mir glaub ich sparen, lieber die 10 einträge auslesen in ein array pushen und das array andersherum ausgeben.
      kommt natürlich drauf an, wie gross die Einträge sein.

      Bert

      1. Hallo Bert,

        lieber die 10 einträge auslesen in ein array pushen und das array
        andersherum ausgeben.

        ja, so hab ich das nun auch gemacht:

        $result = mysql_query("SELECT Spalte FROM ...");

        $i=0;
        while($data = mysql_fetch_array($result))
         {
          $result_array[$i] = $data;
          $i++;
         }
        $result_array_reverse = array_reverse($result_array);

        foreach($result_array_reverse as $data)
         {
          echo $data['Spalte'];
         }

        Thomas