Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: http://redaxo.org/slack/
derkrebs
Beiträge: 149
Registriert: 4. Okt 2011, 17:27

MySQL: Auf- und absteigende Sortierung in EINER Query

18. Dez 2014, 13:40

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

Benutzeravatar
darwin
Beiträge: 1725
Registriert: 2. Jan 2007, 17:10
Wohnort: LA

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

18. Dez 2014, 15:15

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

derkrebs
Beiträge: 149
Registriert: 4. Okt 2011, 17:27

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

18. Dez 2014, 16:38

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

Sysix
Beiträge: 101
Registriert: 23. Sep 2014, 15:08

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

18. Dez 2014, 16:58

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

derkrebs
Beiträge: 149
Registriert: 4. Okt 2011, 17:27

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

19. Dez 2014, 09:09

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

Zurück zu „Sonstiges“