Pay it Forward

MYSQL에서 문자열 자르기 (String Split) 본문

DB/MYSQL

MYSQL에서 문자열 자르기 (String Split)

minjoony 2020. 2. 5. 10:26
728x90

MYSQL에서 field(=column)안에 string이 들어가있는 경우 이 문자열을 내 마음대로 잘라서

필요한 부분만 추출해 내고 싶은 경우가 있습니다

 

저 같은 경우에는 문자열이 들어있는 field의 일부를 추출해내어 다른 filed의 값으로 입력하기 위해

사용하였습니다

 

MYSQL은 이러한 기능을  SUBSTRING_INDEX  을 통해 손쉽게 제공해 줍니다

 

SUBSTRING_INDEX(field 명, '[split 기준이 될 문자]', num)

 

SUBSTRING_INDEX의 매개변수는 다음과 같습니다

  • 첫 번째 인자 : 문자열이 value로 들어있는 field의 이름입니다
  • 두 번째 인자 : split 기준이 되는 문자입니다. 해당 문자를 기준으로 문자열이 나누어집니다
  • 세 번째 인자 : (+)의 값인 경우 split 기준 문자 기준으로 앞에서부터 n개의 문자가 반환되며
                       (-)의 값인 경우 split 기준 문자 기준으로 뒤에서부터 n개의 문자가 반환됩니다

다음은 예시입니다

SELECT SUBSTRING_INDEX('artiiicy.tistory.com', '.', 1);
-- Result : artiiicy

SELECT SUBSTRING_INDEX('artiiicy.tistory.com', '.', 2);
-- Result : artiiicy.tistory

SELECT SUBSTRING_INDEX('artiiicy.tistory.com', '.', 3);
-- Result : artiiicy.tistory.com

SELECT SUBSTRING_INDEX('artiiicy.tistory.com', '.', -1);
-- Result : com

SELECT SUBSTRING_INDEX('artiiicy.tistory.com', '.', -2);
-- Result : tistory.com

SELECT SUBSTRING_INDEX('artiiicy.tistory.com', '.', -3);
-- Result : artiiicy.tistory.com

 

다음은 string이 들어있는  url  field를  '/'  기준으로 split하여  boardIdx  라는 field에 값을 삽입하는 예시입니다

update board set boardIdx = SUBSTRING_INDEX(url, '/', -1);

 

728x90
Comments