Я использую MySQL Server 7.0 на Windows Server 2008 и пытаюсь вернуть результат 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): не разрешено возвращать набор результатов из функции
Я проверил руководство (http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html) и прочитал
Тип результата - TEXT или BLOB, если group_concat_max_len не меньше или равен 512, в этом случае тип результатаэто VARCHAR или VARBINARY.
Я изменил значение group_concat_max_len со значения по умолчанию на 512, а также 256 в My.ini (и перезапустил службу MySQL). Я подтвердил изменение, используя
mysql> показывать переменные типа "% concat%";
Любая помощь приветствуется!