mysql存储函数 - 在varchar和return varchar中 - 错误:1172

时间:2013-02-21 08:27:30

标签: mysql

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

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 ;  

它返回错误:

  

" ERROR 1172(42000):结果由多行组成"

以下是我的查询:

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

1 个答案:

答案 0 :(得分:1)

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