MySQL의 LOCATE() 함수는 주어진 문자열 안에서 특정 부분 문자열이 처음 나타나는 위치를 반환하는 함수입니다. 검색할 부분 문자열과 검색 대상이 되는 원본 문자열, 이 두 개의 인자를 반드시 함께 전달해야 합니다.
LOCATE() 함수 문법
LOCATE(Substring, String)
여기서 Substring은 위치를 찾고자 하는 부분 문자열을 의미하며, String은 해당 부분 문자열을 검색할 대상 문자열을 의미합니다.
LOCATE() 함수 사용 예제
다음 예제를 통해 LOCATE() 함수가 실제로 어떻게 동작하는지 확인해 보겠습니다.
mysql> Select LOCATE('DE','ABCDEFGH');
+-------------------------+
| LOCATE('DE','ABCDEFGH') |
+-------------------------+
| 4 |
+-------------------------+
1 row in set (0.00 sec)
mysql> Select LOCATE('G','ABCDEFGH');
+------------------------+
| LOCATE('G','ABCDEFGH') |
+------------------------+
| 7 |
+------------------------+
1 row in set (0.00 sec)
mysql> Select LOCATE('GH','ABCDEFGH');
+-------------------------+
| LOCATE('GH','ABCDEFGH') |
+-------------------------+
| 7 |
+-------------------------+
1 row in set (0.00 sec)결과 분석
- 'DE'는 'ABCDEFGH' 문자열의 4번째 위치에서 처음 등장하므로 4를 반환합니다.
- 'G'는 7번째 위치에 있으므로 7을 반환합니다.
- 'GH'처럼 두 글자 이상의 부분 문자열도 검색 가능하며, 시작 위치인 7을 반환합니다.
위 예제에서 알 수 있듯이, LOCATE() 함수는 문자열 내에서 부분 문자열이 가장 먼저 나타나는 위치만을 반환합니다. 만약 부분 문자열이 존재하지 않으면 0을 반환한다는 점도 함께 기억해 두면 유용합니다.