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컬럼에 업데이트 시키기