MySQL에서 SUBSTRING() 함수는 문자열의 일부를 추출할 때 사용하는 대표적인 문자열 함수입니다. 이 함수는 일반적으로 SUBSTRING(str, pos, len) 형태로 많이 쓰이지만, SQL 표준 문법인 FROM과 FOR 키워드를 사용하는 방식도 지원합니다.
SUBSTRING() 함수의 기본 문법
SUBSTRING(str FROM pos FOR len)
각 인수의 의미는 다음과 같습니다.
- str : 부분 문자열을 추출할 원본 문자열입니다.
- pos : 추출을 시작할 위치입니다. 문자열 위치는 1부터 시작합니다.
- len : 추출할 부분 문자열의 길이입니다. 즉, 원본 문자열에서 가져올 문자의 개수를 의미합니다.
사용 예제
mysql> Select SUBSTRING('foobarbar' FROM 4 FOR 5);
+-------------------------------------+
| SUBSTRING('foobarbar' FROM 4 FOR 5) |
+-------------------------------------+
| barba |
+-------------------------------------+
1 row in set (0.00 sec)위 예제에서는 문자열 'foobarbar'의 4번째 위치부터 시작하여 총 5개의 문자를 추출했습니다. 그 결과 'barba'가 반환된 것을 확인할 수 있습니다.
FROM과 FOR 키워드 방식의 특징
FROM 키워드는 시작 위치를 지정하고, FOR 키워드는 가져올 길이를 지정하는 역할을 합니다. 이 방식은 쉼표로 인수를 구분하는 전통적인 방식보다 가독성이 좋으며, SQL 표준(ANSI SQL)에 정의된 문법이기 때문에 다른 데이터베이스 시스템과의 호환성 측면에서도 유리합니다.
또한 FOR len 부분은 생략할 수 있습니다. 생략하면 시작 위치부터 문자열 끝까지 전체가 반환됩니다.
mysql> Select SUBSTRING('foobarbar' FROM 4);
+-------------------------------+
| SUBSTRING('foobarbar' FROM 4) |
+-------------------------------+
| barbar |
+-------------------------------+
1 row in set (0.00 sec)위 결과를 통해 SUBSTRING() 함수에서 FROM과 FOR 키워드가 어떤 역할을 하는지 명확하게 이해할 수 있습니다.