DB

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

by 아름다운총각 posted Feb 13, 2015
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄


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




언제 어디서나 좋은 정보 티알조아 - www.trzoa.com