[MySQL]Abfrage



  • hallo zusammen,
    folgendes problem beschäftigt mich derzeit.
    ich habe eine tabelle die so aufgebaut ist:

    id  zahl_one zahl_two
    0     1         0
    1     5         0
    2     5         10
    3     4         7
    4     7         0
    5     15        15
    6     3         0
    

    ich möchte nun mit meinen beschränkten mysqlfähigkeiten versuchen,
    ein wenig ordnung in die ausgabe zu bringen, sprich ich will die datensätze sortieren.

    es soll erst die größte zahl aus zahl_one ausgebenen werden, wenn aber eine zahl aus zahl_two größer ist, dann natürlich diese.
    die richtige reihnfolge müßte so aussehen:
    15
    10
    7
    7
    5
    3
    1

    meine abfrage ist diese hier:
    SELECT * FROM zahlen ORDER BY zahl_one , zahl_two DESC !
    leider funktioniert das so nicht.
    würde mich über einen tipp sehr freuen.
    tschau



  • So dürfte es funktionieren von der SQL-Seite her:

    SELECT zahl_one AS zahl FROM zahlen WHERE zahl > zahl_two
    UNION
    SELECT zahl_two AS zahl FROM zahlen WHERE zahl > zahl_one
    ORDER BY zahl DESC;
    

    Allerdings weiß ich nicht, ob das dein mysql unterstützt (speziell das UNION).

    Möglicherweise könnte man das ganze noch mit einem JOIN umgehen. Wird aber sicher etwas komplizierter, wenn es überhaupt möglich ist.



  • danke AJ.
    bin aber gestern noch auf einen, für mich, neuen befehl gestoßen.

    GREATEST

    die abfrage sieht dann wie folgt aus
    SELECT GREATEST( zahl_one , zahl_two ) AS MAX FROM zahlen ORDER BY MAX DESC

    funktioniert wunderbar, dank für deine bemühungen.
    tschau



  • Interesant was es für Funktionen gibt 😮 🙂


Anmelden zum Antworten