MySQL OUT 参数返回 NULL

MySQL OUT parameter returning NULL

我在 MySQL 中有一个过程,我希望将字符串 Question_Description 作为 OUT 参数传递。但是,每次我执行该程序时,它总是returns NULL。我该如何解决?我尝试了很多不同的方法,其中 none 行得通。

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 ;

您需要赋值。

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$$

注意其他变化:

  • 输入参数清楚地表明它们是输入参数或输出参数。这有助于避免与列名发生冲突。
  • 只需要一个table,所以去掉另一个。
  • 输出参数赋值
  • 你需要学习正确的、明确的、标准 JOIN 语法,即使这个查询不需要 JOIN.