SQL in PHP
Jo
- 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
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
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
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
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