MySQL OUT参数返回NULL
我在MySQL中有一个过程,我希望字符串Question_描述作为OUT参数传递。但是,每次执行该过程时,它总是返回NULL。我该如何解决这个问题?我尝试过许多不同的方法,但没有一种有效MySQL OUT参数返回NULL,mysql,stored-procedures,procedure,Mysql,Stored Procedures,Procedure,我在MySQL中有一个过程,我希望字符串Question_描述作为OUT参数传递。但是,每次执行该过程时,它总是返回NULL。我该如何解决这个问题?我尝试过许多不同的方法,但没有一种有效 DELIMITER $$ CREATE PROCEDURE `QuestionTitle`(IN `QID` INT(11), OUT `Description` VARCHAR(255)) BEGIN select Question.Question_ID, Question.Question_Descrip
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$$
请注意其他变化:
- 输入参数清楚地显示它们是in或out参数。这有助于避免与列名冲突
- 只需要一个表,因此将删除另一个表
- 为输出参数指定了一个值
- 您需要学习正确、明确、标准的
语法,即使此查询不需要联接联接
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参数。这有助于避免与列名冲突
- 只需要一个表,因此将删除另一个表
- 为输出参数指定了一个值
- 您需要学习正确、明确、标准的
语法,即使此查询不需要联接联接
进入
。谢谢,对SQL来说是全新的,所以这很有帮助。以下命令的目的是什么:=?@afterwaves。这将设置值。您也可以在中使用。谢谢,这对SQL来说是全新的,所以这很有帮助。