Почему MySQL 8 IF и IFNULL возвращают результат BLOB при тестировании переменной со значением NULL? - PullRequest
3 голосов
/ 16 июня 2020

Примечание: я переместил суть этого вопроса в здесь , узнав кое-что из того, что происходит, но все еще желая понять. (По сути, ISNULL и COALESCE ведут себя необычно, когда переменная либо не определена, либо была установлена ​​в NULL перед определением.)

Мне, должно быть, не хватает чего-то очень простого, но я не вижу ответов на аналогичный , предыдущий вопрос. Я хочу использовать значение по умолчанию, если переменная не установлена, но не вижу, как это сделать.

SET @x = NULL;
SELECT IFNULL(NULL, 5), IFNULL(@x,5), IF(@x IS NULL, 5, @x); -- gives 5, BLOB, BLOB

Я читал, что COALESCE - правильная функция для использования здесь, но COALESCE (@x , 5) также дает BLOB.

Что мне не хватает? Действительно ли невозможно сказать x = x OR 5?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...