MySQL에서 문자열을 연결하기 위해 그룹을 사용하는 방법은 무엇입니까?
-
02-07-2019 - |
문제
기본적으로 질문은 이것으로부터 얻는 방법입니다.
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;
이것이 다른 사람을 돕기를 바랍니다