Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL FIND_IN_SET() 함수로 테이블에서 특정 레코드를 결과 세트로 조회하는 방법

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 절과 결합하면 특정 레코드를 검색하는 조건으로도 활용할 수 있습니다.