mysql 문자열 자르기, 문자열 나누기 left, substring, right

1. 왼쪽에서 문자열 자르기

left(컬럼명 또는 문자열, 왼쪽에서 잘라낼 문자열의 길이)

사용예 : SELECT left("chongmoa.com", 5)
결과 : chong
 
사용예 : SELECT left("chongmoa.com", 8)
결과 : chongmoa

사용예 : SELECT left("20140323", 4)
결과 : 2014

사용예 : SELECT left("20140323", 6)
결과 : 201403

 

2. 중간에서 문자열 자르기

substring(컬럼 또는 문자열, 시작위치, 길이);

사용예 : SELECT substring("chongmoa.com", 3, 5)
결과 : ongmo

사용예 : SELECT substring("chongmoa.com", 1, 5)
결과 : chong

SELECT substring("20140323", 1, 4)

사용예 : SELECT substring("20140323", 1, 4)
결과 : 2014

사용예 : SELECT substring("20140323", 1, 6)
결과 : 201403

사용예 : SELECT substring("20140323", 5, 2)
결과 : 03

참고 : substr 함수는 문자열의 일부를 추출하는 함수로 substring 함수의 동의어입니다

3. 오른쪽에서 문자열 자르기

right(컬럼명 또는 문자열, 길이);

사용예 : SELECT right("chongmoa.com", 7)
결과 : moa.com

사용예 : SELECT right("chongmoa.com", 3)
결과 : com

사용예 : SELECT right("20140323", 4)
결과 : 0323

사용예 : SELECT right("20140323", 2)
결과 : 23

 

4. 구분자 (delimiter) 로 검색

SUBSTRING_INDEX(str,delim,count)

구분자 (delimiter) delim가 count 만큼 나오기 전에 스트링 str 에서 서브 스트링을 리턴한다.
만일 count 가 양수 (positive)라면, 마지막 구분자의 왼쪽에 있는 모든 것들이 리턴된다.

(왼쪽부터 계산이 됨). 만일 count 가 음수일 경우에는, 마지막 구분자의 오른쪽에 있는 모든 것들이 리턴된다 (오른쪽부터 계산됨).

SUBSTRING_INDEX()는 delim에 대한 검색을 할 때 문자의 크기를 구분한다.

사용예 : SELECT SUBSTRING_INDEX('www.chongmoa.com', '.', 2);
결과 : www.chongmoa

사용예 : SELECT SUBSTRING_INDEX('www.chongmoa.com', '.', -2);
결과 : chongmoa.com

사용예 : SELECT SUBSTRING_INDEX('admin@chongmoa.com', '@', -1)
결과 : chongmoa.com

사용예 : SELECT SUBSTRING_INDEX('admin@chongmoa.com', '@', 1)
결과 : admin

 

이 함수는 다중 바이트를 지원한다.