【问题标题】:MySQL OUT parameter returning NULLMySQL OUT 参数返回 NULL
【发布时间】:2020-05-12 04:02:23
【问题描述】:

我在 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】:

您需要分配一个值。

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

注意其他变化:

  • 输入参数清楚地表明它们是输入参数或输出参数。这有助于避免与列名发生冲突。
  • 只需要一个表,因此删除另一个表。
  • 为输出参数分配了一个值。
  • 您需要学习正确、明确、标准 JOIN 语法,即使此查询不需要JOIN

【讨论】:

  • := 的目的是什么?
  • @afterwaves 。 . .这设定了价值。您也可以使用into
  • 谢谢,对 SQL 完全陌生,所以这很有帮助。
猜你喜欢
  • 2014-02-26
  • 1970-01-01
  • 1970-01-01
  • 2012-11-29
  • 1970-01-01
  • 2020-07-25
  • 1970-01-01
  • 1970-01-01
  • 2021-04-26
相关资源
最近更新 更多