Tach!
Was ich von ihr halte ist nebensächlich. Arbeitet sie denn in allen gewünschten und ungewünschten Fällen wie erwartet?
Finde ich nicht. Es könnte doch sein, dass Du die Lösung für korrekt arbeitend hältst, aber eine wesentlich performantere Lösung kennst. Dann wäre es schon wichtig, was Du als der in mysql Kompetentere von uns beiden davon hältst.
Ja, nebensächlich im Sinne von erst kommt die Funktion (nachweislich und am besten jederzeit wiederholbar) dann das Optimieren (unter Anwendung der Tests, damit kein falsches Funktionieren hineinoptimiert wird).
Ja, bisher scheint sie die Fälle wunschgemäß abzuarbeiten.
Nachdem das geklärt ist, kann ich meine Meinung dazu sagen. Du arbeitest bei deiner Variante mit Negationen. Das CASE ergibt TRUE, wenn das Datum außerhalb ist, ansonsten nichts (= NULL). Dieses NULL ist bei dir positiv, also innerhalb, und darauf testest du dann. Es reichen zwei einfache Vergleiche mit einem AND dazwischen: wenn PrüflingBis >= DBvon und PrüflingVon <= DBbis dann gibt es eine Überschneidung. Eine ähnliche Lösung hatte Tim, aber mit einem OR, was in einem Fall, bei dem beide Daten ober- oder unterhalb der DB-Einträge liegen, schon eine Teilbedingung wahr werden lässt und damit das Ergebnis wahr ist.
dedlfix.