【发布时间】:2023-03-14 22:20:01
【问题描述】:
我在 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 ;
这会产生以下结果:
ERROR 1415 (0A000): 不允许 从函数返回结果集
我查看了手册 (http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html) 并阅读了
结果类型是 TEXT 或 BLOB,除非 group_concat_max_len 小于或 等于 512,在这种情况下,结果 类型是 VARCHAR 或 VARBINARY。
我在 My.ini 中将 group_concat_max_len 的值从默认值更改为 512 和 256(并重新启动了 MySQL 服务)。我已使用
验证了更改mysql> 显示变量,如 "%concat%";
感谢任何帮助!
【问题讨论】:
标签: sql mysql group-concat mysql-error-1415