MySQL의 SOUNDS LIKE 연산자는 이름 그대로 테이블에서 발음(sound)이 비슷한 값을 검색할 때 사용하는 연산자입니다. 철자가 조금 다르더라도 영어 발음이 유사한 데이터를 찾아야 하는 경우에 매우 유용합니다.
SOUNDS LIKE 연산자의 기본 문법
기본 문법은 다음과 같습니다.
Expression1 SOUNDS LIKE Expression2
여기서 Expression1과 Expression2는 서로 비교되는 두 표현식으로, 두 값은 영어 발음을 기준으로 비교됩니다. 내부적으로는 SOUNDEX() 함수를 기반으로 동작하기 때문에, 예를 들어 'Gaurav'와 'Grov'처럼 철자가 달라도 발음이 비슷하면 같은 것으로 간주됩니다.
SOUNDS LIKE 사용 예제
다음은 'student_info' 테이블에서 두 표현식을 발음 기준으로 비교하여 일치하는 행을 조회하는 예제입니다.
예제 1: 'grov'로 검색
mysql> Select * from student_info where name sounds like 'grov'; +------+--------+---------+------------+ | id | Name | Address | Subject | +------+--------+---------+------------+ | 105 | Gaurav | Jaipur | Literature | +------+--------+---------+------------+ 1 row in set (0.00 sec)
'grov'라는 단어와 발음이 유사한 'Gaurav'가 정상적으로 검색된 것을 확인할 수 있습니다.
예제 2: 'rmn'으로 검색
mysql> Select * from student_info where name sounds like 'rmn'; +------+-------+---------+-----------+ | id | Name | Address | Subject | +------+-------+---------+-----------+ | 125 | Raman | Shimla | Computers | +------+-------+---------+-----------+ 1 row in set (0.00 sec)
'rmn'과 발음이 비슷한 'Raman' 역시 정확히 매칭되어 반환됩니다.
정리
SOUNDS LIKE 연산자는 이름, 주소 등 사용자가 입력한 문자열의 철자가 불완전하거나 들리는 대로 기록된 데이터를 검색할 때 특히 유용합니다. 다만 영어 발음을 기준으로 동작하기 때문에 한글이나 다른 언어 데이터에는 적합하지 않다는 점을 참고해야 합니다.