[SQL] 어떻게 MySQL의에서 CONCATENATE 문자열에 GROUP BY를 사용 하는가?
SQL어떻게 MySQL의에서 CONCATENATE 문자열에 GROUP BY를 사용 하는가?
기본적으로 질문은 이것에서 얻는 방법이다 :
foo_id foo_name 1 A 1 B 2 C
이에:
foo_id foo_name 1 A B 2 C
해결법
-
==============================
1.
SELECT id, GROUP_CONCAT(name SEPARATOR ' ') FROM table GROUP BY id;
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
, GROUP_CONCAT 위의 링크에서 :이 기능은 그룹에서 연결된 NULL이 아닌 값을 갖는 문자열 결과를 반환합니다. 더 NULL이 아닌 값이없는 경우는 NULL을 반환합니다.
-
==============================
2.
SELECT id, GROUP_CONCAT( string SEPARATOR ' ') FROM table GROUP BY id
더 자세한 사항은 여기에.
, GROUP_CONCAT 위의 링크에서 :이 기능은 그룹에서 연결된 NULL이 아닌 값을 갖는 문자열 결과를 반환합니다. 더 NULL이 아닌 값이없는 경우는 NULL을 반환합니다.
-
==============================
3.
SELECT id, GROUP_CONCAT(CAST(name as CHAR)) FROM table GROUP BY id
당신에게 쉼표로 구분 된 문자열을 줄 것이다
-
==============================
4.
SELECT id, GROUP_CONCAT(name SEPARATOR ' ') FROM table GROUP BY id;
: - MySQL에서는, 수식 조합의 연결된 값을 얻을 수 있습니다 . 중복 값을 제거하려면 DISTINCT 절을 사용합니다. 결과 값을 정렬하려면 ORDER BY 절을 사용합니다. ORDER BY 절에 의해 당신이 정렬 된 컬럼의 이름에 DESC (내림차순) 키워드를 추가, 역순으로 정렬합니다. 기본값은 오름차순입니다; 이는 ASC 키워드를 사용하여 명시 적으로 지정할 수 있습니다. 그룹의 값의 기본 세퍼레이터 쉼표 ( ","). 명시 세퍼레이터를 지정하기 위해 사용 SEPARATOR 그룹 값 사이에 삽입되어야 문자열 리터럴 값으로 하였다. ''SEPARATOR를 지정, 모두 분리를 제거합니다.
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;
-
==============================
5.우리가 먼저 할 수 있도록 결과는 1024 개 문자의 디폴트 값을 갖는 group_concat_max_len 시스템 변수에 의해 주어진 최대 길이로 잘립니다 :
우리가 먼저 할 수 있도록 결과는 1024 개 문자의 디폴트 값을 갖는 group_concat_max_len 시스템 변수에 의해 주어진 최대 길이로 잘립니다 :
SET group_concat_max_len=100000000;
다음, 예를 들어 :
SELECT pub_id,GROUP_CONCAT(cate_id SEPARATOR ' ') FROM book_mast GROUP BY pub_id
-
==============================
6.큰 응답. 또한 NULLS에 문제가 있었고, GROUP_CONCAT의 COALESCE의 내부를 포함하여 그것을 해결하기 위해 관리. 예는 다음과 같습니다 :
큰 응답. 또한 NULLS에 문제가 있었고, GROUP_CONCAT의 COALESCE의 내부를 포함하여 그것을 해결하기 위해 관리. 예는 다음과 같습니다 :
SELECT id, GROUP_CONCAT(COALESCE(name,'') SEPARATOR ' ') FROM table GROUP BY id;
이 다른 사람을 도움이되기를 바랍니다
from https://stackoverflow.com/questions/149772/how-to-use-group-by-to-concatenate-strings-in-mysql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 내가 사용해야! = 또는 <> T-SQL에서 동일하지 하시나요? (0) | 2020.03.10 |
---|---|
[SQL] 두 개의 서로 다른 곳 조항과 두 데이터 집합을 반환해야 (0) | 2020.03.10 |
[SQL] NULL에 있지 <동일>! = 연산자 (0) | 2020.03.10 |
[SQL] 어떻게 쿼리 PostgreSQL의 '그룹화'의 문자열 필드의 CONCATENATE 문자열에? (0) | 2020.03.10 |
[SQL] 최대 절전 모드는 실제 SQL을 보여 [중복] (0) | 2020.03.10 |