Wenn in MySql das erste Argument einer IF()-Funktion eine Zeichenkette ist, warum gibt sie dann false zurück?
SELECT IF('string', 'string', 'not string'); -- 'not string'
Natürlich könnte ich das irgendwie in Ordnung bringen, wenn ich es täte.
IF(!ISNULL('string'), 'string', 'not string')) -- 'string'
oder
IFNULL('string', 'not string'); -- 'string'
Es scheint etwas kontraintuitiv zu sein, dass eine Zeichenkette auf diese Weise ausgewertet wird, da sie
SELECT IF(1, 'one', 'not one'); -- 'one'
et
SELECT IF('1', 'one', 'not one'); -- 'one'
die Art und Weise zu bewerten, wie sie es tun...