ストアド関数の何が問題になっているのか理解できませんでした。
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");