Функции сравнения IF и IFNULL

usascha

Новичок
Функции сравнения IF и IFNULL

Состряпал кодец, да не срабатывает в одной части помогите, пожалуйста.
Код:
SELECT * 
FROM list l, subscriber s, publication p, regions r
WHERE IF (
ISNULL( p_id ) , l.publication_id NOT 
IN ( 1, 2, 3, 4, 5 ) 
AND l.publication_id = p_id, l.publication_id NOT 
IN ( 1, 2, 3, 4, 5 ) 
)
AND l.subscriber_id = s.id
AND (
s.oblast = r.reg_code
OR r.reg_code =90
)
GROUP BY s.id
ORDER BY s.subscriber_name ASC , r.reg_name ASC 
LIMIT 0 , 30
В базе значение l.publication_id =0. Правильно ли я понимаю, что
значение p.p_id не должно выбираться?

А то получается, когда открываю запись на редактирование получается, что подписчик подписан на издание, а на самом деле в базе - 0.
 

vadim

Guest
0 и NULL разные вещи
то есть проверка IS NULL для 0 не сработает
 
Сверху