Windows Server 2008 で MySQL Server 7.0 を使用しており、関数で GROUP_CONCAT の結果を返そうとしています。一般的な SQL は次のとおりです。
DELIMITER ;
DROP FUNCTION IF EXISTS MyFunction;
DELIMITER $$
CREATE FUNCTION MyFunction(MyVar INT)
RETURNS VARCHAR(255)
BEGIN
SELECT @MyRetVar = GROUP_CONCAT(MyColumn)
FROM MyTable
WHERE MyID = MyVar;
RETURN @MyRetVar;
END$$
DELIMITER ;
これにより、次の結果が得られます。
エラー 1415 (0A000): 関数から結果セットを返すことはできません
マニュアル(http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html)をチェックして読んだ
group_concat_max_len が 512 以下でない限り、結果の型は TEXT または BLOB です。この場合、結果の型は VARCHAR または VARBINARY です。
group_concat_max_len の値をデフォルト値から 512 に変更し、My.ini で 256 に変更しました (そして MySQL サービスを再起動しました)。を使用して変更を確認しました
mysql> 「%concat%」などの変数を表示します。
どんな助けでも大歓迎です!