Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL返回组_CONCAT in函数_Sql_Mysql_Group Concat_Mysql Error 1415 - Fatal编程技术网

MySQL返回组_CONCAT in函数

MySQL返回组_CONCAT in函数,sql,mysql,group-concat,mysql-error-1415,Sql,Mysql,Group Concat,Mysql Error 1415,我正在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(

我正在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):不允许 从函数返回结果集

我检查了手册()并读了一遍

结果类型为TEXT或BLOB,除非 组concat\u max\u len小于或 等于512,在这种情况下,结果 类型为VARCHAR或VARBINARY

我在My.ini中将group_concat_max_len的值从默认值更改为512和256(并重新启动了MySQL服务)。我已经使用

mysql>显示变量,如“%concat%”

感谢您的帮助

试试看

SELECT GROUP_CONCAT(MyColumn)
FROM   MyTable
WHERE  MyID = MyVar INTO @MyRetVar;
RETURN @MyRetVar;

谢谢,真的!这正是我要找的。我有点好奇为什么我的方法不起作用,尽管…@bitxwise你的方法不起作用,因为没有输入的选择不能给变量赋值。