문제

기본적으로 질문은 이것으로부터 얻는 방법입니다.

id    string
1          A
1          B
2          C

이에:

id    string
1          A B
2          C
도움이 되었습니까?

해결책

SELECT id, GROUP_CONCAT(string SEPARATOR ' ') FROM table GROUP BY id;

http://dev.mysql.com/doc/refman/55.0/en/group-by-functions.html#function_group-concat

위의 링크에서 GROUP_CONCAT:이 함수는 그룹의 연결되지 않은 널 값으로 문자열 결과를 반환합니다. 널 값이 아닌 값이없는 경우 NULL을 반환합니다.

다른 팁

SELECT id, GROUP_CONCAT( string SEPARATOR ' ') FROM table GROUP BY id

자세한 내용은 여기.

위의 링크에서 GROUP_CONCAT:이 함수는 그룹의 연결되지 않은 널 값으로 문자열 결과를 반환합니다. 널 값이 아닌 값이없는 경우 NULL을 반환합니다.

SELECT id, GROUP_CONCAT(CAST(string as CHAR)) FROM table GROUP BY id

쉼표로 지정된 문자열을 줄 것입니다

SET group_concat_max_len=100000000
SELECT id, GROUP_CONCAT(string SEPARATOR ' ') FROM table GROUP BY id;

:- MySQL에서는 일치 된 표현 조합의 값을 얻을 수 있습니다. 중복 값을 제거하려면 별개의 절. 결과의 값을 정렬하려면 순서 별 절을 사용하십시오. 정렬합니다 역순으로, 추가 DESC (내림차순) 순서별로 정렬하는 열의 이름에 대한 키워드. 기본값은 오름차순 순서입니다. ASC 키워드를 사용하여 명시 적으로 지정할 수 있습니다. 그룹의 값 간의 기본 구분 기호는 쉼표 (“,”)입니다. 분리기를 명시 적으로 지정하려면 분리기를 사용한 다음 그룹 값 사이에 삽입 해야하는 문자열 문자 값을 사용하십시오. 분리기를 완전히 제거하려면 지정하십시오 분리기 ''.

GROUP_CONCAT([DISTINCT] expr [,expr ...]
             [ORDER BY {unsigned_integer | col_name | expr}
                 [ASC | DESC] [,col_name ...]]
             [SEPARATOR str_val])

또는

mysql> SELECT student_name,
    ->     GROUP_CONCAT(DISTINCT test_score
    ->               ORDER BY test_score DESC SEPARATOR ' ')
    ->     FROM student
    ->     GROUP BY student_name;

훌륭한 대답. 나는 또한 Nulls에 문제가 있었고 Group_Concat 내부에 Coalesce를 포함하여 해결할 수있었습니다. 다음과 같이 예 :

SELECT id, GROUP_CONCAT(COALESCE(string,'') SEPARATOR ' ') 
FROM table 
GROUP BY id;

이것이 다른 사람을 돕기를 바랍니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top