일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- php
- Git
- ReactJS
- Design Patterns
- db
- 요리
- 맛집
- devops
- jenkins
- ubuntu
- laravel
- linux
- Spring
- Spring Batch
- MySQL
- redis
- Spring Boot
- java
- javascript
- Oracle
- IntelliJ
- AWS
- Web Server
- tool
- it
- jsp
- Gradle
- JVM
- springboot
- elasticsearch
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