SUBSTRING_INDEX함수를 php의 split함수와 비슷하게 사용하는 방법

· 조회수 8

mysql에서 구분자의 결합으로 이루어진 컬럼을 구분자로 나누어 뽑아내고 싶을때가 있습니다. test라는 컬럼의 데이터가 1^2^3이고 1을 뽑아내고 싶을때는

SUBSTRING_INDEX('test', '^', 1)

3을 뽑아내고 싶을때는

SUBSTRING_INDEX('test', '^', -1)

1^2을 뽑아내고 싶을때는

SUBSTRING_INDEX('test', '^', 2)

2^3을 뽑아내고 싶을때는

SUBSTRING_INDEX('test', '^', -2)

2를 뽑아내고 싶을때는 SUBSTRING_INDEX함수를 한번 더 적용해서

SUBSTRING_INDEX(SUBSTRING_INDEX('test', '^', -2), '^', 1)
//인덱스 -2로 2^3을 먼저 뽑아내고 다시 인덱스 1로 2가 추출하게 됩니다.

아래는 update에 적용시킨 예제입니다.

update  free set name = (SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(content, '|', -2),'|',2));
//free라는 테이블에서 SUBSTRING_INDEX로 content컬럼의 특정값을 뽑아내 name컬럼에 업데이트 시키기
update  free  set name = "SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(content, '|', -2),'|',2) FROM qa"; 
//qa라는 테이블에서 SUBSTRING_INDEX로 content컬럼의 특정값을 뽑아내 free라는 테이블의 name컬럼에 업데이트 시키기

"마음의 힘은 휴식하는 것이 아니라 운동하는 것이다. - 알렉산더 포우프"

- 마음 -

북마크목록