Seite 1 von 1

mysql order by

Verfasst: 26.05.2007 16:10
von nickvergessen
Ich hab ma ne Frage und ich hoff sie ist verständlich und mir kann jemand helfen.
Also: Ich hab folgende SQL-Abfrage:

Code: Alles auswählen

	$sql = 'SELECT user_id, user_lastpost_time,  user_lastvisit
		FROM ' . USERS_TABLE . '
		ORDER BY user_lastpost_time DESC';
Nun sortiere ich nach user_lastpost_time. Aber ich würde es gerne sohaben, dass wenn user_lastpost_time = 0 ist, das System anstelle von user_lastpost_time den Wert von user_lastvisit zur Sortierung benutzt.
Ist sowas möglich?

Verfasst: 26.05.2007 16:19
von Pyramide

Verfasst: 26.05.2007 17:22
von nickvergessen
kann es sein, dass das bei MySQL 4 noch nicht geht?
zumindest hab ich es nicht hinbekommen.
Oder war ich einfach nur zu doof? Wenn ich zudoof war, könntest du mir dann das zusammenbauen, so dass es richtig funktioniert?

Verfasst: 26.05.2007 18:38
von Pyramide
Was genau hast du denn versucht und welche Fehlermeldung kommt?

Verfasst: 27.05.2007 00:21
von nickvergessen
OK, jetzt hab ich es hinbekommen...
Nachdem ich grade alle Möglichkeiten hier mit dem Ergebnis formuliert habe,
hat es mit folgendem geklappt:

Code: Alles auswählen

	$sql = 'SELECT user_id, user_lastpost_time, user_lastvisit
		FROM ' . USERS_TABLE . '
		ORDER BY CASE WHEN user_lastpage_time = 0 THEN user_lastvisit ELSE user_lastpage_time END DESC';
Danke an dich Pyramide für den Ehrgeiz, den man von dir immer bekommt. ;)