dedlfix: function ausgabe funktioniert nicht

Beitrag lesen

Hi!

Wie von mir angemerkt ist es viel sinnvoller, gleich die Anzahl der Datensätze abzufragen, oder gleich True oder False:
    CASE
        WHEN COUNT(*) > 0 THEN 1   -- True ist in MySQL ein Alias für 1
        ELSE 0                     -- False ist ein Alias für 0
    END hasChildren

Das geht noch einfacher: SIGN(COUNT(*)) AS hasChildren

SIGN() liefert von einem Wert das Vorzeichen als -1, 0 oder 1. Negative Werte können bei einem COUNT() nicht auftreten, weswegen -1 nicht vorkommt. 0 liefert 0 und der Rest liefert 1. Aber selbst das SIGN() kann man sich schenken, denn wenn man das Abfrageergebnis 0 und "Wert größer 0" nach boolean castet oder einfach boolesch auswertet, bekommt man schon das gewünschte Ergebnis.

Lo!