Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Запрос с данными, даже если их нет


Автор: MacTep 19.3.2008, 21:46
Как написать запрос, который бы возвращал строчку с нулями, если запрос возвращает пустое значение, и строчку со значениями, если они есть? То есть скажем
Код

select p.first_name
from persons p
where p.person_id = 10
не вернет ни одной строки, если в таблице persons нет персоны с person_id равным 10. А можно сделать так, чтобы он вернул-таки одну  строку, в которой будет написано - "значений нет". Заранее спасибо!

Автор: Shaggie 20.3.2008, 11:37
Код

SELECT COALESCE(p.first_name, "Hey, what is it?")
FROM persons p
WHERE p.person_id = 10


Добавлено через 48 секунд
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_coalesce

Автор: MacTep 20.3.2008, 15:54
Неа. Так не будет работать. Ведь такого person_id  в базе нет. Ты не вник в суть проблемы.

Автор: igorold 20.3.2008, 20:23
MacTep, ты не вник в суть сделаного тебе запроса ... ты его хотя бы протестируй ...  smile 

Автор: MacTep 21.3.2008, 07:46
Я вник и протестировал.
Твой запрос выдаст "Hey, what is it?", если у персоны с person_id = 10 first_name = null, а мне надо не это. Повторяю, ты не вник в суть вопроса. Мне надо, что бы он это выдал, если в таблице вообще нет персоны с person_id = 10. Понимаешь?

Автор: Shaggie 21.3.2008, 14:38
Извиняюсь, действительно неверно интерпретировал.

Сходу не получается прикинуть решение на уровне базы данных.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)