MySQL IFNULL «N / A» выдает «элемент не найден в коллекции» Ошибка

Я использовал функции IFNULL для преобразования значений NULL в нули в моих SQL-запросах, например:

<code>SELECT IFNULL(mem.comment_count,0) FROM members...
</code>

Это отлично работает. Сейчас я пытаюсь использовать функцию IFNULL для преобразования значений NULL в строку «N / A», но постоянно получаю сообщение об ошибке: «элемент не найден в коллекции, соответствующей запрошенному имени или порядковому номеру»:

<code>SELECT IFNULL(mem.address2,'N/A') FROM members...
</code>

Я даже пытался использовать COALESCE, просто добавив пустую строку вместо NULL:

<code>SELECT COALESCE(NULLIF(mem.address2, ''), 'N/A') FROM members...
</code>

Но все равно выдает ту же ошибку.

Есть идеи?

 Marcus Adams05 апр. 2012 г., 15:32
Пожалуйста, пометьте вопрос языком / слоем базы данных, который вызвал ошибку.
 Heinrich05 апр. 2012 г., 15:16
Какой тип mem.address2?
 TheCarver05 апр. 2012 г., 15:23
@Lex: Да, участники имеют псевдоним mem. Я должен был включить это в свой вопрос, извините. Я решил это сейчас благодаря Konerak ниже. Для функции IFNULL нужен псевдоним ...
 TheCarver05 апр. 2012 г., 15:17
Это VARCHAR 100
 rael_kid05 апр. 2012 г., 15:21
У членов есть псевдонимmem? Если не; Вы не можете использовать это в IFNULL, используйтеIFNULL(members.address2)

Ответы на вопрос(1)

Решение Вопроса

но ваш код, вероятно, ищет имя столбца? Попробуйте псевдоним:

SELECT IFNULL(mem.address2,'N/A') AS address2 FROM members mem ...
 TheCarver05 апр. 2012 г., 15:21
Большое спасибо. Это сводило меня с ума :)

Ваш ответ на вопрос