본문 바로가기
Programming/DataBase

[mysql] 문자열의 일부를 반환하는 substr, substring_index 함수

by 막이 2014. 10. 17.
substr(또는 substring) 함수

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

 SELECT SUBSTRING(str, pos[, len]);
 SELECT SUBSTR(str, pos[, len]);

첫번째 인자는 원본 문자열이고, 두번째 인자는 반환하려는 문자열의 시작위치(0 또는 음수 -1로 지정)를 지정할 수 있습니다. 그리고 마지막 인자는 반환하려는 문자열의 끝 위치를 말하는데, 세번째 인자를 지정하지 않을 경우 지정된 두번째 인자(시작위치부터...)부터 문자열의 전부를 반환합니다.

예재(ex #1
 mysql> SELECT SUBSTRING('habonytest', 5);
      -> nytest
 mysql> SELECT SUBSTRING('habonytest', 3, 2);
      -> bo
 mysql> SELECT SUBSTRING('habonytest', FROM 2);
      -> abonytest

음수는 끝자리에서 수를 카운터합니다.

예제(ex #2
 mysql> SELECT SUBSTRING('habonytest', -3);
      -> est
 mysql> SELECT SUBSTRING('habonytest', -5, 2);
      -> yt
 mysql> SELECT SUBSTRING('habonytest', FROM -5 FOR 4);
      -> ytes


substring_index 함수

이 함수는 substr 함수와 기능은 비슷하지만 구분자가 있습니다. str 문자열에 delim 구분자를 기준으로 count 수 만큼 반환받습니다. 음수이면 뒤에서 카운터합니다.

 SELECT SUBSTRING_INDEX(str, delim, count);

. 를 기준으로 2개를 반환받습니다.

예재(ex #3
 mysql> SELECT SUBSTRING_INDEX('www.php.net', '.', 2);
      -> www.php
 mysql> SELECT SUBSTRING_INDEX('www.php.net', '.', -2);
      -> php.net

다음은 @를 기준으로 반환받습니다.

예제(ex #4
 mysql> SELECT SUBSTRING_INDEX('myid@domain.com', '@', -1);
      -> domain.com
 mysql> SELECT SUBSTRING_INDEX('myid@domain.com', '@', 1);
      -> myid


'Programming > DataBase' 카테고리의 다른 글

[mssql] 현재날짜 yyyy-dd-mm  (0) 2015.03.06
[MSSQL] 계층형 트리구조 쿼리  (0) 2015.02.03
[oracle] merge into  (0) 2014.09.04
oracle 11g 서버 설치방법  (0) 2014.08.01
CREATE TABLESPACE & CREATE USER  (0) 2014.07.13