Jan W: MySQL: order by - Verständnisproblem

Beitrag lesen

Hallo!

Ich möchte das Ergebnis einer einfachen Datenbankabfrage sortieren, erhalte aber nicht das von mir erwartete Ergebnis:

SELECT eventname FROM EVENTS ORDER BY presented DESC, recommended DESC, calendardate

presented -> vom Typ tinyint (mögliche Werte 0 und 1) recommended -> vom Typ tinyint (mögliche Werte 0 und 1) calendardate -> vom Typ datetime

Meiner Meinung nach müssten jetzt alle Events so sortiert rauskommen: zuerst die, bei denen eine '1' bei 'presented' eingetragen ist, danach die, bei denen 'recommended' auf '1' gesetzt ist und danach die, bei denen 'presented' und 'recommended' eine '0' beinhalten. Diese dann aufsteigend nach Datum sortiert.

Bei meinen aktuellen Daten, habe ich kein Event, wo 'presented' auf '1' steht, 3 Datensätze, wo 'recommended' auf '1' steht und viele weitere, bei denen keines der beiden Felder auf '1' steht.

Somit gehe ich davon aus, dass zuerst die drei Datensätze rauskommen, bei denen 'recommended' auf '1' steht, sortiert nach Datum aufsteigend und dann alle anderen Datensätze, auch sortiert nach Datum aufsteigend.

Nun erhalte ich aber z.B. zuerst ein Event, welches in 'presented' und 'recommended' eine '0' enthält, aber das Datum am kleinsten ist. Danach kommen einige andere und irgendwann kommen die, bei denen 'recommended' auf '1' steht.

Wo ist mein Denkfehler?

Danke!