MySQL if then/ case

Там! Я пишу сценарий MySQL в MySQl Front 4.1.
У меня есть проблема с, если тогда, заявления случая.

У меня есть следующий код:

set @prodID = -1;
select @prodID = productID
from partid_to_productid 
where PartID= 8;


case @prodID
 WHEN NULL then select 0;
 else select 3;
 end case

Фронт не хочет его исполнять. Зачем? Может кто-нибудь объяснить мне, что здесь не так?

1 ответ

Решение

SELECT выходит за пределы CASE:

SELECT 
  CASE @prodID 
    WHEN NULL THEN 0
    ELSE 3
  END;

На самом деле, это не возвращает 0 для меня, как я ожидаю при тестировании. Вместо этого попробуйте:

SELECT CASE WHEN @prodID IS NULL THEN 0 ELSE 3 END;
Другие вопросы по тегам