mysql 가로행과 세로열 값을 모두 구분자로 묶기 > 질문답변

본문 바로가기
사이트 내 전체검색

질문답변

mysql 가로행과 세로열 값을 모두 구분자로 묶기

페이지 정보

profile_image
작성자 미친새
댓글 0건 조회 21,393회 작성일 20-02-21 12:33

본문

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

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

공지사항

  • 게시물이 없습니다.

접속자집계

오늘
1,221
어제
1,914
최대
5,296
전체
1,480,515
Copyright © 소유하신 도메인. All rights reserved.