Я использую 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%";
Любая помощь приветствуется!