'(DB) MySql/String 함수'에 해당되는 글 3건

  1. 2017.01.18 MySql - 문자열 변경. Replace
  2. 2017.01.18 MySql - 문자열 찾기.Find
  3. 2017.01.12 문자열 결합

** MySql - 문자열 변경. Replace **


    - Replace(문자열,  대상문자, 변경문자)

      : 문자열에서  대상문자를 찾아서 변경문자로 변환


    - Replace(문자열, CHAR(13) + CHAR(10), '')

     : Enter값을 제거


    - Replace((Replace(문자열, char(13), ''), char(10), '')

      : Enter 값 제거방법2



'(DB) MySql > String 함수' 카테고리의 다른 글

MySql - 문자열 찾기.Find  (0) 2017.01.18
문자열 결합  (0) 2017.01.12
Posted by 농부지기
,

** MySql - 문자열 찾기.Find **




1. FIND_IN_SET(str, strlist)함수

    예) SELECT FIND_IN_SET('apple', 'tomato,banana,apple,grape')

          - 결과 : 3

          - 정의 : 문자열에서 ','(콤마)를 기준으로 몇번째 존재 하는지 index값을 return 

'(DB) MySql > String 함수' 카테고리의 다른 글

MySql - 문자열 변경. Replace  (0) 2017.01.18
문자열 결합  (0) 2017.01.12
Posted by 농부지기
,

** 문자열 결합 **

 

 

MySQL 함수중 GROUP_CONCAT과 CONCAT, CONCAT_WS 가 있다.
이 함수를 이용하면 우리가 원하는 결과를 얻을 수 있다.

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를 원하는 구분자를 이용해 문자열로 통합할 수 있다.

예시는 다음과 같다.

GROUP_CONCAT 예제 (Language : sql)
SELECT GROUP_CONCAT(NAME SEPARATOR ';') FROM USER_TEST GROUP BY GROUPNUM;


결과는 다음과 같다.

지도리;지돌스타
방실이;설운도;이효리
박주영

단, 이것만 기억하자. group_concat_max_len 시스템 변수에 의해 최대허용길이를 설정할 수 있는데, default값이 1024이다. 만약 1024byte가 넘어가면 GROUP_CONCAT에 의해 붙은 문자열은 잘린다.

예문2) 결과 컬럼 약쪽에 '(single quote 넣기)

SELECT GROUP_CONCAT("'", part_cd, "'" ) AS part_cd_multi

  FROM hanjul.TPartition ;

결과 : '001', '002', '004' 




제대로 사용해보기 


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.naver.com/xsoft/150017833358
GROUP_CONCAT() 메뉴얼 : http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
CONCAT() 및 CONCAT_WS() 메뉴얼 : http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat

'(DB) MySql > String 함수' 카테고리의 다른 글

MySql - 문자열 변경. Replace  (0) 2017.01.18
MySql - 문자열 찾기.Find  (0) 2017.01.18
Posted by 농부지기
,