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

MySQL WHERE 절에서 FIND_IN_SET() 함수 활용하기

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 절과 함께 활용하면, 단일 값뿐 아니라 구분자로 나열된 문자열 집합 내에서도 원하는 데이터를 손쉽게 필터링할 수 있습니다.