[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка существования значения при SELECT в MySQL
Niemand
Здравствуйте,
собственно нужно следующее: при выборки из базы долно проверяться, существует ли значение, если нет, то ставится единица. пробовал вот так:
Код
SELECT IFNULL( coeff, '1' ) as test
FROM coeffs
WHERE <..>

но как я понимаю, такая проверка дает результаты только если COUNT(*)>0, а значение поля 0 или NULL, а если рядов нет - пишет, что по запросу найдено количество рядов - ноль. в документации mysql все эти IF очень поверхностно описаны...
помогите разобраться.




Спустя 2 часа, 52 минуты, 25 секунд (28.06.2008 - 22:48) Ghost написал(а):
делай обычный select ... where ... если результат пустой - значения нет в базе.

Спустя 12 часов, 14 минут, 45 секунд (29.06.2008 - 11:03) Niemand написал(а):
дело как раз в том, что, если значения нет, мне нужно чтобы подставлялась единица... этот SELECT-запрос второстепенный, т.е. его значение - часть инсерта (INSERT INTO bla VALUES (bla, [ЭТОТ ЗАПРОС])), и мне нужно, или его значение или 1, если значения нет. вот в чем фишка, я не хочу обрабатывать значение посредством ПХП и потом его инсертить.

Спустя 25 минут, 43 секунды (29.06.2008 - 11:29) Alchemist написал(а):
SELECT IF(COUNT(*), `field_name`, 1) as `name`...

Спустя 38 минут, 57 секунд (29.06.2008 - 12:08) Niemand написал(а):
блин, а логично ведь...
спасибо blush.gif

Спустя 1 день, 20 часов, 10 минут, 59 секунд (1.07.2008 - 08:19) sergeiss написал(а):
А зачем тут какой-то IF писать, я не понял???
Почему нельзя изначально сделать в таблице coeff дефолтовое значение для нужного поля, равное единице? Тогда если что-то назначил, то оно будет не равно 1. А если не назначил, то автоматически равно единице. Дефолтовые значения для таких ситуаций как раз и сделаны были.
И пиши потом свой ИНСЕРТ, вообще не сильно задумываясь и безо всякой дополнительной обработки smile.gif

Спустя 9 дней, 2 часа, 23 минуты, 18 секунд (10.07.2008 - 10:42) Niemand написал(а):
само собой я пробовал, при дефолте, если считывать таким путем, получается, что mysql пытается сохранить в эту ячейку не NULL (который нужен для дефолта), а '', т.е. пустую строку, а потом ругается, что сохраняемое значение не совпадает с типом данных ячейки. поэтому и пришлось искать дорогу через одно место smile.gif


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.