mysql存储的函数-在varchar中并返回varchar-错误:1172



我不知道我的存储函数出了什么问题。

select batch as bach from test where mfg_code = 'BC-7A1-5' group by batch;

当我运行上面的脚本时,我能够获得预期的行数。

然而,我无法使用下面的类似脚本:-

DELIMITER $$
DROP FUNCTION IF EXISTS `testdata1970_05`.`listbatch` $$
CREATE FUNCTION `listbatch`(mfgnum VARCHAR(24)) RETURNS VARCHAR(10)
BEGIN
DECLARE bach VARCHAR(10);
SELECT batch into bach FROM test WHERE mfg_code = mfgnum group by batch;
RETURN bach;
END $$
DELIMITER ;  

它返回错误:

"错误1172(42000):结果包含多行"

下面是我的问题:

select listbatch("BC-7A1-5");

您的错误消息告诉您,查询返回了多行,结果集不能存储在简单变量中,因为您定义的变量只能包含一个值!

最新更新