LOCATE() 함수는 기본적으로 문자열의 가장 앞부분부터 검색을 시작합니다. 하지만 함수에 위치를 나타내는 인자를 추가하면, 원하는 지점부터 검색을 시작하도록 설정할 수 있습니다. 다음 예제를 통해 이를 자세히 살펴보겠습니다.
구문
LOCATE(찾을_문자열, 대상_문자열, 시작_위치)
세 번째 인자인 시작_위치에 숫자를 전달하면, MySQL은 해당 위치부터 부분 문자열을 검색합니다.
예제
mysql> Select LOCATE('good','Ram is a good boy. Is Ram a good boy?',11)As Result;
+--------+
| Result |
+--------+
| 29 |
+--------+
1 row in set (0.00 sec)위 예제에서는 세 번째 인자로 11을 전달했습니다. 이는 MySQL이 문자열의 11번째 위치부터 'good'이라는 단어를 검색하기 시작한다는 의미입니다. 따라서 첫 번째 문장에 있는 'good'은 무시되고, 두 번째 문장에 있는 'good'의 시작 위치인 29가 결과로 반환됩니다.
정리
이처럼 LOCATE() 함수의 세 번째 인자를 활용하면 특정 지점부터 문자열을 검색할 수 있어, 반복적으로 나타나는 문자열 중 원하는 위치의 값을 찾을 때 유용하게 사용할 수 있습니다.