일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- IntelliJ
- tool
- MySQL
- php
- Git
- Web Server
- ubuntu
- Design Patterns
- Gradle
- linux
- jenkins
- 맛집
- springboot
- laravel
- elasticsearch
- devops
- db
- jsp
- 요리
- Spring Batch
- JVM
- AWS
- ReactJS
- Spring Boot
- Oracle
- Spring
- javascript
- redis
- java
- it
Archives
- Today
- Total
아무거나
[mysql] 서로 다른 결과를 한줄로 합쳐서 보여줘야 할 때(GROUP_CONCAT) 본문
반응형
GROUP BY로 GROUPING한 필드말고 중복이 안되는 문자열들을 가진 필드의 문자열들을 합칠땐 GROUP_CONCAT을 사용
-
Table Schema(Table Name: example_table)
-
Table Sample Data
SELECT * FROM test_example;
-
콤마를 구분자로 한 결과값으로 합쳐져있는 문자열 도출(group_concat 기본 구분자는 콤마)
SELECT name, GROUP_CONCAT(value) FROM test_example GROUP BY name;
-
임의의 구분자로 한 결과값으로 합쳐져있는 문자열 도출
SELECT name, GROUP_CONCAT(value SEPARATOR '|') FROM test_example GROUP BY name;
-
임의의 구분자로 한 결과값으로 표시되는 결과의 중복을 제거
SELECT name, GROUP_CONCAT(DISTINCT value SEPARATOR '|') FROM test_example GROUP BY name;
-
임의의 구분자로 한 결과값으로 표시되는 결과의 중복을 제거한 값을 정렬하여 도출
SELECT name, GROUP_CONCAT(DISTINCT value ORDER BY value SEPARATOR '|') FROM test_example GROUP BY name;
MySQL에서 group by로 구분자를 이용하여 문자열을 합칠땐 GROUP_CONCAT을 이용한다.
- 기본: GROUP_CONCAT을(필드명)
- 임의의 구분자 지정: GROUP_CONCAT을(필드명 SEPARATOR '구분자')
- 중복제거: GROUP_CONCAT을(DISTINCT 필드명)
- 문자열기준으로 정렬 : GROUP_CONCAT을(필드명 ORDER BY 필드명)
-
반응형
'Data Store > DB' 카테고리의 다른 글
[mysql] 엑셀로 되어있는 부분 db로 import하는 방법 (0) | 2019.03.08 |
---|---|
[mysql] 하나의 쿼리로 여러 테이블의 데이터 삭제 (0) | 2019.02.22 |
[mysql] GROUPING을 하면서 다른 필드의 종류별 개수와 또 다른 필드의 숫자값을 모두 더한 값의 리스트를 도출하는 쿼리 (0) | 2019.02.15 |
[mysql] hierarchy 구조에서 recursive 쿼리의 사용 (0) | 2019.01.16 |
[mysql] UPSERT(INSERT ON DUPLICATE KEY UPDATE) (0) | 2019.01.16 |
Comments