skyposter: Letzte Einträge bekommen

Hi

Wie kann ich die letzten 5 Einträge in steigender Sortierung auswählen?

Also:

4
5
6
7
8

und nicht:

8
7
6
5
4

skyposter

  1. Hi!

    Wie kann ich die letzten 5 Einträge in steigender Sortierung auswählen?

    Also:

    4
    5
    6
    7
    8

    und nicht:

    8
    7
    6
    5
    4

    Die SQL-Klauseln LIMIT und ORDER BY helfen dir hierbei weiter:

      
    SELECT  
           number  
    FROM  
           table  
    ORDER BY  
           number ASC  
    LIMIT 5  
    
    

    Grüße,
    Fabian St.

    1. damit bekomme ich doch

      12345

      oder

      87654

      oder liege ich da falsch?

      1. Hi skyposter,

        damit bekomme ich doch
        12345
        oder liege ich da falsch?

        Ja, so sehe ich das auch. Du hast uns aber noch gar nicht gesagt, von welchem DBMS du ausgehst - ich nehme jetzt einfach mal MySQL an. Wenn ich da das MySQL Handbuch, SELECT > LIMIT richtig verstanden und nichts überlesen habe, so gibt es keine Möglichkeit in MySQL das was du willst zu realisieren.

        Du müsstest also erst die Gesamtanzahl der vorhandenen Datensätze auslesen und dann die letzten 5 mit LIMIT <Anzahl> - 5, 5 besorgen.

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
        Crypt::PasswdMD5 jetzt auch in PHP
        Mit Gesetzen ist es wie mit Würstchen - es ist besser, wenn man nicht weiß, wie sie gemacht werden. (Otto v. Bismarck)
  2. echo $begrüßung;

    Wie kann ich die letzten 5 Einträge in steigender Sortierung auswählen?

    Eine einfache Lösung gibt es nicht. Die "beste" Lösung hängt davon ab, welches DBMS in welcher Version dir zur Verfügung steht, oder allgemeiner gesagt: von den von diesem DBMS zur Verfügung gestellten Möglichkeiten. Deswegen folgen hier nur zwei Vorschläge.

    Angenommen dir stehen LIMIT und Subselects zur Verfügung, wie beispielsweise unter MySQL ab Version 4.1:
    SELECT * FROM (SELECT * FROM table ORDER BY spalte DESC LIMIT 5) AS x ORDER BY spalte;

    Stehen dir keine Subselects zur Verfügung, wohl aber LIMIT und das Möglichkeit temporäre Tabellen anzulegen, wie beispielsweise unter MySQL kleiner als 4.1, geht es mit zwei Befehlen:
    CREATE TEMPORARY TABLE x
      SELECT * FROM table ORDER BY spalte DESC LIMIT 5;
    SELECT * FROM x ORDER BY spalte;

    echo "$verabschiedung $name";

  3. Hello,

    da die Ergebnisse meistens auch dargestellt werden sollen, bietet es ich meistens an, den letzten Schliff der Darstellungs-Software (z.B. PHP) zu überlassen. Man erspart sich daruch meistens viel K(r)ampf in der Datenbank-Schicht.

    Harzliche Grüße vom Berg
    esst mehr http://www.harte-harzer.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau