2017-01-10 1 views
1

mysql에서 group_concat() 함수에 separator를 사용하고 싶습니다.하지만 구분 기호를 동적으로 변경하고 싶습니다. 분리 기호 값이 테이블에서오고 모든 행마다 다릅니다.mysql 함수에서 group_concat 구분 기호를 동적으로 변경하십시오.

그 해결책을 찾지 못했습니다. 제발 도와주세요.

+1

아마도 데이터에 큰 문제가 있다는 표시입니다. 이를 위해 동적 SQL이 필요합니다 – e4c5

+0

다른 말로하면 매개 변수에 분리 기호 값을 전달하는 것입니다. 도움을 받으려면 어떻게해야합니까? –

+0

해결책을 얻었습니다. ''안에 분리 기호를 사용할 수는 있지만 마지막으로 우리는 지나가고있다. –

답변

0

마지막으로 soultion이 있습니다.

MySQL 루틴이 있다고 가정 해 보겠습니다. SEPARATOR (기본값은 ',') 인 GROUP_CONCAT 일부 값이 필요합니다. 하지만 SEPARATOR은 정적이 아닙니다. 예를 들어, 다른 테이블에서 가져 왔습니다. 일부 '설정'표에서

DECLARE url_delimiter VARCHAR(255); 

SELECT catalog_url_delimiter 
INTO url_delimiter 
FROM settings; 

우리는 직접 SEPARATOR 매개 변수로 변수를 사용할 수 없습니다

-- doesn't work 
SELECT GROUP_CONCAT(`some_table`.id SEPARATOR url_delimiter) 
FROM <some query> 

하지만 우리는 몇 가지 더미 분리기를 사용하여 유효한 아래로 교체 할 수 있습니다 : @에

SELECT 
    REPLACE(
    GROUP_CONCAT(`some_table`.id SEPARATOR 'some-tricky-dummy-separator'), 
    'some-tricky-dummy-separator', 
    url_delimiter 
) 
FROM <some query> 

감사합니다 SaritaTewari는 아이디어를 얻었습니다.

관련 문제