WHERE 절에서 FIND_IN_SET() 함수를 사용하면, 인수로 지정된 문자열 목록 안에서 검색 문자열을 찾아 조건에 일치하는 행의 모든 컬럼 값을 조회할 수 있습니다. 이 함수는 주로 쉼표(,)로 구분된 문자열 목록에서 특정 값이 포함되어 있는지 확인할 때 유용하게 사용됩니다. 검색 문자열이 발견되면 해당 위치의 인덱스를 반환하고, 찾지 못하면 0을 반환합니다.
예제
다음 예제에서는 'Student' 테이블에서 Name 컬럼의 값이 'Gaurav'인 행들의 컬럼 정보를 조회합니다. 이때 FIND_IN_SET() 함수는 'Name' 컬럼의 값들 중에서 검색 문자열인 'Gaurav'를 찾아 해당 행만 결과로 반환합니다.
mysql> Select Id, Name, Address, Subject from student WHERE FIND_IN_SET('Gaurav', Name);
+------+--------+---------+-----------+
| Id | Name | Address | Subject |
+------+--------+---------+-----------+
| 1 | Gaurav | Delhi | Computers |
| 20 | Gaurav | Jaipur | Computers |
+------+--------+---------+-----------+
2 rows in set (0.20 sec)위 실행 결과를 보면, Name 컬럼의 값이 'Gaurav'인 두 개의 행(Id가 1과 20)이 정상적으로 조회된 것을 확인할 수 있습니다. 이처럼 FIND_IN_SET() 함수를 WHERE 절과 함께 활용하면, 단일 값뿐 아니라 구분자로 나열된 문자열 집합 내에서도 원하는 데이터를 손쉽게 필터링할 수 있습니다.