2

我无法弄清楚我存储的函数出了什么问题。

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");
4

1 回答 1

1

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

于 2013-02-21T08:31:31.390 回答