我不知道我的存储函数出了什么问题。
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");
您的错误消息告诉您,查询返回了多行,结果集不能存储在简单变量中,因为您定义的变量只能包含一个值!