MySQL LOCATE() 함수의 인수로 정수 값 사용하기
MySQL에서는 LOCATE() 함수의 인수로 정수 값을 그대로 사용할 수 있습니다. 이 경우 문자열과 달리 따옴표(' 또는 ")로 감싸줄 필요가 없습니다. LOCATE() 함수는 첫 번째 인수로 지정한 값이 두 번째 인수 안에서 처음 등장하는 위치를 반환하며, 해당 값을 찾지 못하면 0을 반환합니다.
예제
mysql> Select LOCATE(5,1698235); +-------------------+ | LOCATE(5,1698235) | +-------------------+ | 7 | +-------------------+ 1 row in set (0.00 sec) mysql> Select LOCATE(56,1698235); +--------------------+ | LOCATE(56,1698235) | +--------------------+ | 0 | +--------------------+ 1 row in set (0.00 sec) mysql> Select LOCATE(23,1698235); +--------------------+ | LOCATE(23,1698235) | +--------------------+ | 5 | +--------------------+ 1 row in set (0.00 sec)
결과 분석
- LOCATE(5, 1698235) → 7 반환 : 숫자 1698235에서 '5'가 일곱 번째 자리에 위치하기 때문입니다.
- LOCATE(56, 1698235) → 0 반환 : '56'이라는 연속된 두 자리 숫자가 존재하지 않아 값을 찾지 못했기 때문입니다.
- LOCATE(23, 1698235) → 5 반환 : '23'이 다섯 번째 자리부터 시작되기 때문입니다.
이처럼 LOCATE() 함수는 정수 값을 전달하더라도 해당 값을 문자열처럼 취급하여 위치를 검색하며, 별도의 형 변환이나 따옴표 처리 없이 바로 사용할 수 있다는 점이 특징입니다.