В MySql, если первый аргумент функции IF () является строкой, почему он возвращает false?
SELECT IF('string', 'string', 'not string'); -- 'not string'
Конечно, я мог бы исправить это, если бы сделал
IF(!ISNULL('string'), 'string', 'not string')) -- 'string'
или
IFNULL('string', 'not string'); -- 'string'
Кажется несколько нелогичным, что он оценивает строку так, как он это видит, как
SELECT IF(1, 'one', 'not one'); -- 'one'
и
SELECT IF('1', 'one', 'not one'); -- 'one'
оцените, как они это делают ...