Windows Server 2008에서 MySQL Server 7.0을 사용 중이며 함수에서 GROUP_CONCAT의 결과를 반환하려고합니다. 일반적으로 다음과 같이 SQL은 다음과 같습니다MySQL 함수에서 GROUP_CONCAT를 반환하십시오.
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 ;
이것은 다음과 같은 결과를 얻을 : 결과는 내가 확인
함수에서 설정 한 허용되지 않음 반환 에 :
ERROR 1415 (0A000) 설명서 (http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html) 및 읽기
결과 유형은 TEXT입니다. 또는 group_concat_max_len이보다 작거나 이 512가 아니면 유형의 결과는 VARCHAR 또는 VARBINARY입니다.
group_concat_max_len의 기본값을 My.ini의 기본값 인 512에서 256으로 변경하고 MySQL 서비스를 다시 시작했습니다. 변경을 확인했습니다.
mysql> "% concat %"와 같은 변수를 보여줍니다.
도움을 주시면 감사하겠습니다.
감사를 시도 ajreal! 이게 내가 원하는거야. 나는 왜 내 접근 방식이 효과가 없었는지 조금 궁금하다. – bitxwise
@bitxwise INTO가없는 SELECT가 변수에 값을 할당 할 수 없기 때문에 접근 방식이 작동하지 않았다. – fredt