mysql 가로행과 세로열 값을 모두 구분자로 묶기
페이지 정보
본문
1. CONCAT
CONCAT는 Field를 하나의 문자열로 묶어주는 함수이다.
다음과 같이 사용할 수 있다.
CONCAT 예제 (Language : sql)
SELECT CONCAT(`IDX`,'|',`NAME`,'|',`EMAIL`) FROM USER_TEST;
결과는 다음과 같다.
1|지도리|jidori@nnn.com
2|지돌스타|jidolstar@nnn.com
3|방실이|bangsiri@nnn.com
4|설운도|seolundo@nnn.com
5|박주영|juyoung@nnn.com
6|이효리|hyri@nnn.com
2. CONCAT_WS
CONCAT_WS는 CONCAT과 거의 비슷하다. 하지만 구분자를 한번에 지정할 수 있다는 것이 특징이다.
CONCAT_WS 예제 (Language : sql)
SELECT CONCAT_WS('|', `IDX`, `NAME`, `EMAIL`) FROM USER_TEST;
결과는 CONCAT과 완전 동일하다.
3. GROUP_CONCAT
이 함수를 이용하면 GROUPING된 Record를 원하는 구분자를 이용해 문자열로 통합할 수 있다.
ex)
GROUP_CONCAT 예제 (Language : sql)
SELECT GROUP_CONCAT(NAME SEPARATOR ';') FROM USER_TEST GROUP BY GROUPNUM;
결과는 다음과 같다.
지도리;지돌스타
방실이;설운도;이효리
박주영
단, 이것만 기억하자. group_concat_max_len 시스템 변수에 의해 최대허용길이를 설정할 수 있는데, default값이 1024이다. 만약 1024byte가 넘어가면 GROUP_CONCAT에 의해 붙은 문자열은 잘린다.
제대로 사용해보기
Query문 부터 보자.
가로행과 세로열을 모두 구분자로 묶기 (Language : sql)
SELECT GROUP_CONCAT(
CONCAT_WS('|', `IDX`, `NAME`, `EMAIL`)
SEPARATOR '@')
FROM USER_TEST
GROUP BY GROUPNUM;
결과는 다음과 같다.
1|지도리|jidori@nnn.com;2|지돌스타|jidolstar@nnn.com
3|방실이|bangsiri@nnn.com;4|설운도|seolundo@nnn.com;6|이효리|hyri@nnn.com
5|박주영|juyoung@nnn.com
이 방법을 사용하면 한번의 Query로 처음에 보여준 PHP코드 처럼 할 필요가 없다는 것을 알 수 있을 것이다.
출처 : http://blog.jidolstar.com/171
CONCAT는 Field를 하나의 문자열로 묶어주는 함수이다.
다음과 같이 사용할 수 있다.
CONCAT 예제 (Language : sql)
SELECT CONCAT(`IDX`,'|',`NAME`,'|',`EMAIL`) FROM USER_TEST;
결과는 다음과 같다.
1|지도리|jidori@nnn.com
2|지돌스타|jidolstar@nnn.com
3|방실이|bangsiri@nnn.com
4|설운도|seolundo@nnn.com
5|박주영|juyoung@nnn.com
6|이효리|hyri@nnn.com
2. CONCAT_WS
CONCAT_WS는 CONCAT과 거의 비슷하다. 하지만 구분자를 한번에 지정할 수 있다는 것이 특징이다.
CONCAT_WS 예제 (Language : sql)
SELECT CONCAT_WS('|', `IDX`, `NAME`, `EMAIL`) FROM USER_TEST;
결과는 CONCAT과 완전 동일하다.
3. GROUP_CONCAT
이 함수를 이용하면 GROUPING된 Record를 원하는 구분자를 이용해 문자열로 통합할 수 있다.
ex)
GROUP_CONCAT 예제 (Language : sql)
SELECT GROUP_CONCAT(NAME SEPARATOR ';') FROM USER_TEST GROUP BY GROUPNUM;
결과는 다음과 같다.
지도리;지돌스타
방실이;설운도;이효리
박주영
단, 이것만 기억하자. group_concat_max_len 시스템 변수에 의해 최대허용길이를 설정할 수 있는데, default값이 1024이다. 만약 1024byte가 넘어가면 GROUP_CONCAT에 의해 붙은 문자열은 잘린다.
제대로 사용해보기
Query문 부터 보자.
가로행과 세로열을 모두 구분자로 묶기 (Language : sql)
SELECT GROUP_CONCAT(
CONCAT_WS('|', `IDX`, `NAME`, `EMAIL`)
SEPARATOR '@')
FROM USER_TEST
GROUP BY GROUPNUM;
결과는 다음과 같다.
1|지도리|jidori@nnn.com;2|지돌스타|jidolstar@nnn.com
3|방실이|bangsiri@nnn.com;4|설운도|seolundo@nnn.com;6|이효리|hyri@nnn.com
5|박주영|juyoung@nnn.com
이 방법을 사용하면 한번의 Query로 처음에 보여준 PHP코드 처럼 할 필요가 없다는 것을 알 수 있을 것이다.
출처 : http://blog.jidolstar.com/171
관련링크
-
https://icoon22.tistory.com/295
6140회 연결
- 이전글MS-SQL 달력쿼리 20.02.21
- 다음글여러 웹 프로그래밍 언어에서 서로 호환되는 문자열 암호화 클래스 20.02.21
댓글목록
등록된 댓글이 없습니다.