mysql order by

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

mysql order by

Beitrag 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?
kein Support per PN
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

KB:knigge
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag 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?
kein Support per PN
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Was genau hast du denn versucht und welche Fehlermeldung kommt?
KB:knigge
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag 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. ;)
kein Support per PN
Antworten

Zurück zu „Coding & Technik“