MySQL Sortierung

27o8

abgemeldet
2 Mai 2006
9.028
933
Hi,
ich habe eine Tabelle und dort diese 2 Spalten drin:

start: (-1, oder unix_timestamp)
ende: (0 oder unix_timestamp)

Nun möchte ich die Einträge aus der Tabelle holen wobei zuerst die Einträge ausgelesen werden sollen wo (start < time() & > -1) AND (ende = 0 || ende >= time()) Erst danach sollen die anderen kommen.

Geht das irgendwie im ORDER BY oder mache ich am besten 2 QUerys, und wenn der erste kein Resultate mehr liefert dann den zweiten? :think:
 
Du kannst nach beliebigen Ausdrücken sortieren lassen.

Code:
[FONT=Courier New]... [B][COLOR=#9932cc]ORDER[/COLOR][/B] [B][COLOR=#9932cc]BY[/COLOR][/B] [B][COLOR=#9932cc]IF[/COLOR][/B](condition, 0, 1) [B][COLOR=#9932cc]ASC[/COLOR][/B][/FONT]
damit kommen zuerst die, die die Bedingung condition erfüllen, danach die anderen, die sie nicht erfüllen.
 
Noch als Nachtrag: Vermutlich kannst du sogar direkt nach der Bedingung sortieren lassen. Dann weiß ich aber nicht, ob true oder false zuerst kommt.

Die IF-Variante sollte nur mal die Grundidee aufzeigen, dass du im Prinzip nach allem sortieren lassen kannst. Wenn du z.B. 3 Gruppen hast, so kannst du mit einem weiteren IF n Wert 2 für die Sortierung belegen.
Für mehr gibts afair auch ne CASE-Syntax, damit man nicht n ellenlanges IF(IF(IF(...))) hat. RTFM, weiß ich selber ned auswendig.