Jo: SQL in PHP

Hallo,

in einer Datentabelle sind mehrere Punkte mit gleichen Bezeichnungen (nach dem Modus "wert1-wert2") abgelegt, die ich geordnet ausgeben möchte (manche aufsteigend andere absteigend). Nur wie? Das ist falsch:

SELECT * FROM rpoint WHERE ROUTEID IN ('0-48','0-1','100-98' ) ORDER BY 100-98 DESC, 0-48 ASC , 0-1 ASC

Geht das überhaupt mit SQL? Wenn nicht, wie dann (PHP)?
Danke
Jo

  1. yo,

    es geht über sql, allerdings sortiert in aller regel das order by eine ganze spalte und nicht nur einzelne teilbereiche der spalte. insofern muss du zum beispiel mit hilfe der flussteuerung CASE die sortierung entsprechend setzen.

    Ilja

  2. Hallo

    in einer Datentabelle sind mehrere Punkte mit gleichen Bezeichnungen (nach dem Modus "wert1-wert2") abgelegt, die ich geordnet ausgeben möchte (manche aufsteigend andere absteigend). Nur wie? Das ist falsch:

    SELECT * FROM rpoint WHERE ROUTEID IN ('0-48','0-1','100-98' ) ORDER BY 100-98 DESC, 0-48 ASC , 0-1 ASC

    Eine Lösung für MySQL findest Du in SELFHTML aktuell:
    Sortierfolgen in MySQL vorgeben

    Freundliche Grüße

    Vinzenz

    1. Hallo,
      danke für den Tipp. Leider muß ich in dem Projekt Access als Datenbank benutzen und da wird die Funktion nicht unterstützt.
      Gibt es da eine andere Möglichkeit (z.B. die ungeordnete SQL-Abfrage mit PHP sortieren?)
      Jo

      1. Ahoi Jo,

        Gibt es da eine andere Möglichkeit (z.B. die ungeordnete SQL-Abfrage mit PHP sortieren?)

        natürlich, in php stehen z.B. die array Sortierfunktionen asort und ksart zur verfügung.

        http://de3.php.net/manual/de/ref.array.php

        Aber für deinen speziellen wunsch, so wie ich ihn verstanden habe, musst du wohl eine eigene sortierungsfunktion schreiben.

        MfG