我在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)并阅读了
结果类型为TEXT或BLOB,除非 group_concat_max_len小于或 等于512,在这种情况下结果 type是VARCHAR或VARBINARY。
我将group_concat_max_len的值从默认值更改为512,在My.ini中也更改了256(并重新启动了MySQL服务)。我已使用
验证了更改的MySQL>显示变量,如"%concat%&#34 ;;
感谢任何帮助!
答案 0 :(得分:0)
尝试
SELECT GROUP_CONCAT(MyColumn)
FROM MyTable
WHERE MyID = MyVar INTO @MyRetVar;
RETURN @MyRetVar;