PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (My)SQL: Gültiges Query?


Expandable
2004-12-06, 15:57:29
Hallo,

ich hab's zwar schon im Webdesign-Board gepostet, aber ich glaub, hier wäre es richtiger:

Ich habe folgendes Problem: In einer Tabelle habe ich eine Spalte namens "status", welche letztlich nur folgende sechs Werte enthalten kann: sector, ready, way, alarmed, returned, home. Ein Select-Query auf die Tabelle soll (unter anderem) nach status sortiert werden und zwar in der oben angegebenen Reihenfolge (d.h. NICHT alphabetisch!). Ich habe folgendes Query geschrieben, das unter PHP und MySQL 4.0.20a das gewünschte Ergebnis liefert. Nun wollte ich fragen, da ich dazu keinerlei Dokumentation gefunden habe, ob das überhaupt ein "gültiges" Statement ist und ob das auf allen MySQL-Funktionen bzw. auf anderen SQL-Datenbanken (PostgreSQL z.B.) auch funktioniert? Falls nicht, wie könnte ich das Query umschreiben?

Im Query ist etwas PHP-Code vermischt, da es dynamisch generiert wird. Die Variable "this->orderStr" enthält natürlich noch ein Komma am Schluss.


SELECT
ID, type, unit, organisation, radioName, status
FROM um_unit
WHERE " . $this->whereStr . "
ORDER BY " . $this->orderStr . " status='home', status='returned', status='alarmed', status='way', status='ready', status='sector', sectorNum

DANKE!

HellHorse
2004-12-06, 18:09:54
Nun wollte ich fragen, da ich dazu keinerlei Dokumentation gefunden habe, ob das überhaupt ein "gültiges" Statement ist
Doku der entsprechenden DB (mit Vorsicht zu geniessen, da Hersteller Erweiterungen einbauen und Sachen auslassen)
z.B. für MySQL:
http://dev.mysql.com/doc/mysql/en/SQL_Syntax.html
oder
http://developer.mimer.com/validator/
Keine Ahnung wie man an die entsprechenden Dokumente von ANSI rankommt.

und ob das auf allen MySQL-Funktionen bzw. auf anderen SQL-Datenbanken (PostgreSQL z.B.) auch funktioniert? Falls nicht, wie könnte ich das Query umschreiben?
MySQL -> andere DB ist i.d.R nicht das Problem (mal von Table Typen und Indices abesehen)
andere DB -> MySQL schon eher.


ORDER BY " . $this->orderStr . " status='home', status='returned', status='alarmed', status='way', status='ready', status='sector', sectorNum
Hmm, Vergleiche im ORDER BY :|