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
.
我在 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
.