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

MySQL FIND_IN_SET() 함수란? 용도와 사용법 완벽 정리

FIND_IN_SET() 함수는 이름 그대로 문자열 목록에서 지정한 문자열을 검색하는 MySQL 내장 함수입니다. 쉼표로 구분된 여러 개의 부분 문자열로 이루어진 문자열 목록 안에서 특정 문자열이 존재하는지 확인하고, 존재한다면 해당 문자열의 위치(인덱스)를 숫자로 반환합니다.

기본 문법

FIND_IN_SET(검색할_문자열, 문자열_목록)

첫 번째 인수인 검색할_문자열은 찾고자 하는 문자열이며, 두 번째 인수인 문자열_목록은 쉼표(,)로 구분된 부분 문자열들을 포함하는 문자열입니다.

사용 예제

mysql> Select FIND_IN_SET('good','Ram,is,a,good,boy');

+-----------------------------------------+
| FIND_IN_SET('good','Ram,is,a,good,boy') |
+-----------------------------------------+
|                                       4 |
+-----------------------------------------+

1 row in set (0.00 sec)

위 예제에서 문자열 목록 'Ram,is,a,good,boy'는 다섯 개의 부분 문자열로 구성되어 있습니다. 이 중 'good'은 네 번째 위치에 있으므로 함수는 4를 반환합니다.

반환값 정리

  • 문자열을 찾으면 해당 위치(1부터 시작)를 반환합니다.
  • 문자열을 찾지 못하면 0을 반환합니다.
  • 어느 한쪽 인수라도 NULL이면 NULL을 반환합니다.

활용 팁

FIND_IN_SET()은 쉼표로 구분된 값이 저장된 컬럼에서 특정 값의 포함 여부를 확인할 때 유용하게 사용됩니다. 다만 인덱스를 활용할 수 없어 대량 데이터 조회 시 성능이 떨어질 수 있으므로, 가능하다면 별도의 테이블로 정규화하는 방식을 권장합니다.