MySQL retorno de la función GROUP_CONCAT
-
28-09-2019 - |
Pregunta
Estoy usando MySQL Server 7.0 en Windows Server 2008 y estoy tratando de devolver el resultado de un GROUP_CONCAT en una función. SQL en general es la siguiente:
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 ;
Esto produce el siguiente resultado:
ERROR 1415 (0A000): No se permite devolver un conjunto de resultados de una función
he comprobado el manual ( http: // dev .mysql.com / doc / RefMan / 5,0 / en / grupo por functions.html ) y leer
El tipo de resultado es un texto o BLOB menos group_concat_max_len es inferior o igual a 512, en cuyo caso el resultado tipo es VARCHAR o VARBINARY.
Me cambió el valor de group_concat_max_len de su valor predeterminado de 512 y 256 en my.ini (y reiniciar el servicio MySQL). He verificado el cambio utilizando
mysql> Mostrar variables como "% concat%";
Cualquier ayuda se agradece!
Solución
Trate
SELECT GROUP_CONCAT(MyColumn)
FROM MyTable
WHERE MyID = MyVar INTO @MyRetVar;
RETURN @MyRetVar;