Chrisi: MySQL Order By etwas komplizierter

Beitrag lesen

Hallo zusammen,

ich sitze gerade an einer SQL Abfrage und komme nicht zu dem Ergebnis das ich benötige.

Ich hole aus einer MySQL Datenbank in der Kapazitäten für Veranstaltungen gespeichert werden Daten und sortiere anhand der Menge der eingetragenen Kapazitäten (unten heissen die freedays) durch.

Nun soll die Abfrage erweitert werden um "special" Einträge, jeder Spezial Eintrag soll bei der Sortierung immer ganz oben stehen, ohne Rücksicht auf Kapazitäten. Dazu habe ich die Tabelle in der die Veranstaltungen gespeichert werden um eine Spalte "special" erweitert, ist diese Spalte mit 1 belegt ist es ein special Eintrag, falls 0 nicht.

Meine Abfrage sieht so aus:

SELECT objekte.*,COUNT(kalender.day) AS freedays FROM kalender,objekte GROUP BY objekte.id ORDER BY objekte.special DESC, freedays DESC

Er holt mir jetzt schön meine objekte aus der Datenbank und sortiert mir diese anhand von special und dannach dann nochmal nach der Anzahl der freien Kapazitäten.

Nun sieht das Ergebnis leider so aus das die special Einträge nicht ganz oben stehen sondern immer nur als erster unter den Datensätzen die die gleiche Menge an freedays haben, ist natürlich von der Logik her richtig aber nicht der Effekt den ich benötige :)

Nun meine Frage: Muss ich 2 getrennte Abfragen machen um die special Einträge von normalen trennen zu können ?

Oder gibt es vieleicht eine Möglichkeit bei Order BY eine Priorität festzulegen, so dass ich mehr Gewicht auf die Sortierung von special legen kann ?

Danke für jeden Tipp und viele Grüße, Chrisi ...