MySQL FIND_IN_SET() 함수로 특정 레코드 조회하기
FIND_IN_SET() 함수의 인수로 찾고자 하는 특정 문자열과 컬럼 이름을 지정하면, 조건에 일치하는 레코드를 결과 세트로 가져올 수 있습니다. 이때 WHERE 절과 함께 FIND_IN_SET() 함수를 사용해야 합니다.
예제 데이터 확인
아래와 같은 데이터가 저장된 'student_info' 테이블을 예로 들어 살펴보겠습니다.
mysql> Select * from student_info; +------+---------+----------+------------+ | id | Name | Address | Subject | +------+---------+----------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Jaipur | Literature | | 125 | Raman | Shimla | Computers | +------+---------+----------+------------+ 3 rows in set (0.00 sec)
FIND_IN_SET()을 활용한 쿼리 실행
다음 쿼리는 FIND_IN_SET() 함수를 사용하여 학생 이름이 'Raman'인 레코드만 결과 세트로 가져오는 예시입니다.
mysql> Select Id, Name, Subject from Student_info Where FIND_IN_SET('Raman',Name);
+------+-------+-----------+
| Id | Name | Subject |
+------+-------+-----------+
| 125 | Raman | Computers |
+------+-------+-----------+
1 row in set (0.00 sec)위 실행 결과에서 볼 수 있듯이, FIND_IN_SET('Raman', Name)은 Name 컬럼의 값 중 'Raman'과 정확히 일치하는 행만 필터링하여 반환합니다. 이처럼 FIND_IN_SET() 함수는 쉼표로 구분된 문자열 목록 내에서 특정 값의 위치를 찾는 함수이지만, WHERE 절과 결합하면 특정 레코드를 검색하는 조건으로도 활용할 수 있습니다.