[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • MySQL: Auf- und absteigende Sortierung in EINER Query
Seite 1 von 1

MySQL: Auf- und absteigende Sortierung in EINER Query

Verfasst: 18. Dez 2014, 13:40
von derkrebs
Hallo,

ich habe eine MySQL-Tabelle, in der die beiden Spalten "datum" und "status" enthalten sind. Das Feld "status ist entweder "online", "offline" oder "Archiv". Nun möchte ich in EINER Query die Einträge mit dem Status "online" ABSTEIGEND und die Einträge mit dem Status "Archiv" AUFSTEIGEND nach dem Feld "datum" sortieren lassen.

Geht das und wenn ja, wie mache ich das?

Danke schon mal für Eure Hilfe!

Gruß,
Michael

Re: MySQL: Auf- und absteigende Sortierung in EINER Query

Verfasst: 18. Dez 2014, 15:15
von darwin
HI,
das sollte funzen ...
via AJAX den jeweiligen Wert übergeben und
den query ausführen lassen (mit jeweiligen wert)
und anschl. zurückliefern.

(google findet folgendes)
Beispiel "select onChange"
Beispiel ajax onChange

Grz. Chris

Re: MySQL: Auf- und absteigende Sortierung in EINER Query

Verfasst: 18. Dez 2014, 16:38
von derkrebs
Hi Chris,

ähm, irgendwie verstehe ich grad nicht, wie mir Dein Vorschlag helfen soll (oder ich steh auf'm Schlauch... :lol: ).

Ich beschreib das nochmal anders: ich muss die MySQL-Abfrage so gestalten, dass in einem Durchgang die Einträge mit dem Status 'online' absteigend und die Einträge mit dem Status 'Archiv' aufsteigend nach Datum sortiert werden.

Also grob so:

Code: Alles auswählen

$sql = new rex_sql();
$sql->setQuery("SELECT * FROM " . $db_table . " WHERE 'status'='online' ORDER BY 'datum' ASC AND WHERE 'status'='Archiv' ORDER BY 'datum' DESC");
So funktioniert das aber glaub ich nicht (oder?)

Danke für Deine Hilfe!

Gruß,
Michael

Re: MySQL: Auf- und absteigende Sortierung in EINER Query

Verfasst: 18. Dez 2014, 16:58
von Sysix
das kannst du mit CASE machen :)

hab extra nen netten artikel für dich gefunden:

http://sqlandme.com/2013/11/18/sql-serv ... by-clause/

statt die 1 bzw 2 im beispiel kannst du ja datum DESC benutzen :)

Gruß Sysix

Re: MySQL: Auf- und absteigende Sortierung in EINER Query

Verfasst: 19. Dez 2014, 09:09
von derkrebs
Hi Sysix,

vielen Dank für Deine Hilfe - das war der Hinweis den ich brauchte! :D

Nach ein wenig ausprobieren war das der Code, mit dem es funzte:
$sql = new rex_sql();
$sql->setQuery("SELECT * FROM " . $db_table . " WHERE status = 'online' OR status = 'Archiv' ORDER BY CASE status WHEN 'Archiv' THEN datum END DESC, CASE status WHEN 'online' THEN datum END ASC" . $sql_limit);
Gruß,
Michael