Warum so kompliziert über UNION ?
SQL-Code:
select *, DATE_FORMAT (Datum,'%m%d') as MonatTag from Termine
where (Typ=0 and DATE_FORMAT(Datum,'%m%d') >= DATE_FORMAT(CURRENT_DATE,'%m%d')) or
(Typ=1 and Datum >= CURRENT_DATE)
order by DATE_FORMAT (Datum,'%m%d')
limit 0,5
So in etwa, aber ungetestet, würde ichs probieren.
Schlägt aber fehl ab dem 27.12.... Denn 5 später ist der 01.01., und mit der DATE_FORMAT Funktion ist 0101 < 1217... Aber dennoch denk ich ist der Ansatz nicht zu schlecht