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!

¿Fue útil?

Solución

Trate

SELECT GROUP_CONCAT(MyColumn)
FROM   MyTable
WHERE  MyID = MyVar INTO @MyRetVar;
RETURN @MyRetVar;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top