如何处理没有在mysql中找到的记录?

时间:2014-01-03 10:31:15

标签: mysql sql stored-procedures no-data

我有一个程序,下面是select语句:

SELECT TYPE 
INTO v_type
FROM timeperiodtype
WHERE projectid = 15;

我没有projectid = 15的记录。所以没有记录会检索。如果我没有15的记录,有没有办法可以从这个查询得到null而不是什么。

我已经尝试了ifnull,nullif并且我可以使用declare handler但我正在使用它与游标。如果是,可以对此查询使用相同的声明处理程序,请通过一些示例进行解释。

2 个答案:

答案 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;