Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL INSTR() 및 FIND_IN_SET() 함수의 차이점은 무엇입니까?

<시간/>

알다시피 두 함수 모두 제공된 인수에서 문자열을 검색하는 데 사용되지만 다음과 같이 두 함수 사이에 몇 가지 중요한 차이점이 있습니다.

  • FIND_IN_SET() 함수는 쉼표로 구분된 하위 문자열을 포함하는 문자열 자체인 문자열 목록을 사용합니다. 반면, INSTR() 함수는 하위 문자열이 있는 경우 처음 나타나는 위치를 찾는 문자열을 포함합니다.
  • 정수의 경우 INSTR() 함수보다 FIND_IN_SET()이 훨씬 적합합니다. 다음 예를 통해 이해할 수 있습니다.

예시

mysql> Select IF(INSTR('10,11,12,13',2) > 0,1,0) As Result;
+--------+
| Result |
+--------+
|      1 |
+--------+
1 row in set (0.05 sec)

mysql> Select IF(FIND_IN_SET(2,'10,11,12,13') > 0,1,0)As Result;
+--------+
| Result |
+--------+
|      0 |
+--------+
1 row in set (0.00 sec)

위 예제의 결과 집합에서 INSTR() 함수는 인수에 문자열이 없기 때문에 1이라도 2를 반환함을 알 수 있습니다. 하지만 FIND_IN_SET() 함수는 정답인 0을 반환합니다.