MySQL OUT参数返回NULL

问题描述 投票:1回答:1

我在MySQL中有一个过程,我希望将字符串Question_Description作为OUT参数传递。但是,每次执行该过程时,它总是返回NULL。我该如何解决?我尝试了许多不同的方法,但没有一个起作用。

DELIMITER $$
CREATE PROCEDURE `QuestionTitle`(IN `QID` INT(11), OUT `Description` VARCHAR(255))
BEGIN
select Question.Question_ID, Question.Question_Description
FROM Question, QuestionAllocator
WHERE Question.Question_ID=QuestionAllocator.QuestionID and Question.Question_ID=QID;
END$$
DELIMITER ;
mysql stored-procedures procedure
1个回答
0
投票

您需要分配一个值。

CREATE PROCEDURE `QuestionTitle`(
    IN in_QID INT(11),
    OUT out_Description VARCHAR(255)
)
BEGIN
    SELECT out_Description := q.Question_Description
    FROM Question q
    WHERE q.Question_ID = in_QID;
END$$

注意其他更改:

  • 输入参数清楚地表明它们是in或out参数。这有助于避免与列名冲突。
  • 仅需要一个表,因此将另一个表删除。
  • 为输出参数分配了一个值。
  • 即使该查询不需要JOIN,您也需要学习正确,明确的standard JOIN语法。
© www.soinside.com 2019 - 2024. All rights reserved.