RDBS/MYSQL

[MySQL]데이터의 특정 값이 포함되어있는지 확인하는 방법(FIND_IN_SET)

MoonSta 2023. 6. 6. 16:28

 FIND_IN_SET 구문을 활용하여 콤마로 구분되는 데이터의 특정 값이 포함되어 있는지 확인할 수 있다. FIND_IN_SET 구문을 사용하기 위해서는 특정 칼럼에 해당하는 데이터가 콤마로 구분되어 있고, 정렬되지 않은 데이터 내부에 특정 값이 포함되어 있는지 확인하는 경우에 유용하게 사용할 수 있습니다. 기본 문법은 다음과 같다. 

 

 

📌기본 구조 및 사용 예시

#FIND_IN_SET(검색할 문자열, 콤마로 구분된 리스트);

#EXAMPLE
#FIND_IN_SET("A", "A, B, C, D");

#RESULT
#1

 

  • 검색할 문자열 : A
  • 리스트 : A, B, C, D 
  • 결과 : 1 

 

📌FIND_IN_SET - 실 사용 예시

month hist 
4 101, 102, 103, 104, 105
5 101, 103, 104, 105
6 102, 103, 104, 105
7 101, 102, 103, 104

 

📌101, 102호가 동시에 기록된 달 조회

SELECT month
  FROM TABLE
 WHERE 1=1
   AND FIND_IN_SET('101', hist) > 0 
   AND FIND_IN_SET('102', hist) > 0
   
#101, 102호가 동시에 납부한 달을 조호한다.
month
4
7