我有一个程序,下面是select语句:
SELECT TYPE
INTO v_type
FROM timeperiodtype
WHERE projectid = 15;
我没有projectid = 15的记录。所以没有记录会检索。如果我没有15的记录,有没有办法可以从这个查询得到null而不是什么。
我已经尝试了ifnull,nullif并且我可以使用declare handler但我正在使用它与游标。如果是,可以对此查询使用相同的声明处理程序,请通过一些示例进行解释。
答案 0 :(得分:2)
在执行v_type
之前使用NULL
明确初始化SELECT INTO
SET v_type = NULL;
SELECT TYPE
INTO v_type
FROM timeperiodtype
WHERE projectid = 15;
或只使用SET
声明
SET v_type =
(
SELECT TYPE
FROM timeperiodtype
WHERE projectid = 15;
);
这是 SQLFiddle 演示
答案 1 :(得分:0)
首先使用任何初始值初始化v_type或在以下查询中使用“AS”而不是“INTO”
SELECT IF(COUNT(TYPE) > 0, TYPE, NULL)
INTO v_type
FROM timeperiodtype
WHERE projectid = 15;