我试图通过存储过程提取一个字段,我使用了以下查询。我的目标是取出多个行,但只有在存在单个行时,它才能成功地执行结果。否则,它将返回一个错误,正如我在下面提到的。
MySQL查询
DELIMITER ;;
DROP PROCEDURE IF EXISTS Sample1;;
CREATE PROCEDURE Sample1(IN lft1 INT, IN rgt1 INT, OUT emp1 VARCHAR(20))
BEGIN
SELECT p.emp INTO emp1
FROM personnel p
WHERE p.lft > lft1
AND p.rgt < rgt1
LIMIT 10;
END;;
CALL Sample1(1, 10, @emp);;
SELECT @emp;错误消息
MySQL said: Documentation
#1172 - Result consisted of more than one row 备注
Sample1-过程名称emp-从表人员中选择字段lft-用于检查状态,也是表人员领域之一。personnel-表名
发布于 2011-11-29 08:58:37
该错误不在您的过程中。错误在查询中--它返回多行,但不能将多个结果设置为标量值“emp1 1”。
您应该限制查询,使其返回一行。
如何从mysql中的存储过程中提取多行?
https://stackoverflow.com/questions/8307939
复制相似问题