Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Problem bei der Sortierung bei SQL

  1. #1
    Registrierter Benutzer
    Registriert seit
    09.07.2002
    Beiträge
    41

    Problem bei der Sortierung bei SQL

    Tabelle vorhanden, wie folgt aufgebaut:
    id int(11) not null auto_increment primary key,
    date datetime,
    blablub varchar(255)

    Das Problem:
    Gehen wir davon aus in dieser Tabelle sind 500 Einträge gespeichert. Nun brauche ich die 10 aktuellsten Einträge, wobei von denen der aelteste zu erst ausgegeben werden soll.

    Daten (vereinfacht):

    13:00 Uhr A
    14:00 Uhr B
    15:00 Uhr C
    16:00 Uhr C


    Genau in dieser Reihenfolge brauche ich die Daten aber eben nur die letzten. Eine temporäre Tabelle möchte ich vermeiden, ebenso müssen alle Daten in der gleichen Tabelle bleiben.

    Ansätze:

    Code:
    SELECT * FROM tabelle WHERE id IN (SELECT id FROM TABELLE ORDER BY date DESC LIMIT 24) ORDER BY date ASC
    Geht nicht, da MySQL 4.1.11 kein LIMIT in einem Subquery innerhalb von IN akzeptiert

    Code:
    SELECT * FROM tabelle ORDER BY date DESC LIMIT 24
    Humbug, da ich hier die Ergebnisse in der Form: 16:00 Uhr, 15:00 Uhr, 14:00 Uhr, ... kriege

  2. #2
    Registrierter Benutzer
    Registriert seit
    15.10.2005
    Ort
    Franken
    Beiträge
    362
    Hm. Eigentlich trivial. Leider nur eigentlich.
    Ich habs jetzt auch ein paar mal probiert, und bin zu keiner Lösung gekommen (falls das unter MySQL 4.1.11 wirklich nicht geht), unter MaxDB gehts.
    Dank der Rekursion kann ich IF-Schleifen bauen.

    In neuem Glanz: www.turbohummel.de

  3. #3
    Registrierter Benutzer
    Registriert seit
    28.08.2002
    Beiträge
    496
    versuchs mal hiermit:
    Code:
    select *
    from (SELECT id FROM TABELLE ORDER BY date DESC LIMIT 24) a
    order by a.date
    greetz
    Geändert von quinte17 (24-02-2006 um 14:37 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •