我在WindowsServer2008上使用MySQLServer7.0,并试图在函数中返回组连接的结果。通用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
)并阅读
结果类型为文本或BLOB,除非
组concat_max_len小于或
等于512,在这种情况下
类型是VARCHAR或VARBINARY。
我在My.in I中将group_concat_max_len的值从默认值更改为512,也更改为256(并重新启动MySQL服务)。我已经用
mysql>显示变量,如“%concat%”;
感谢您的帮助!