본문 바로가기
Database

MySQL - 특정 데이터 포함 확인 LOCATE / INSTR / LIKE

by devLog by Ronnie's 2022. 8. 19.

들어가며


MySQL을 통해 테이블에 문자열이 포함되어 있는지 확인하는 3가지 방법에 대해서 정리한다. 

 

 

INSTR 기능


MySQL의 LOCATE 함수를 사용하여 문자열에 특정 데이터가 포함되어 있는지 확인이 가능하다.

LOCATE 함수는 LOCATE(substr, str)과 같이 두개의 인수를 사용한다. substr에는 문자열을 입력하고 str에 있는 문자열 substr의 검색 위치를 정수로 반환한다.

만약 substr에 str이 없다면 0을 반환한다.

 

추가적으로 LOCATE(substr, str, pos) 가 있는데 여기서 pos 위치로 예를들어 5를 적게 되면 문자열 5 이후에 주어진 str을 찾게 된다.

 

쿼리를 날려보면 다음과 같이 주어진 문자열을 포함을 하고 있다면 결과를 반환한다.

 

 

INSTR 함수


LOCATE 함수와 유사한 함수로 INSTR(str, substr) 2개의 인수를 필요로 한다.

이 함수는 매개변수로 전달된 부분 문자열에서 문자열이 처음 발생했을 때의 인덱스 값을 반환한다.  LOCATE와는 매개변수 위치가 반대이다.

 

쿼리를 날려보면 LOCATE 동일하게 주어진 문자열을 포함하고 있는 결과를 반환한다.

 

 

LIKE 연산자


마지막으로는 함수가 아닌 연산자로 찾는 방법이 있다.

WHERE 절과 함께 사용한다.

 

쿼리를 위와 같이 동알하게 날려본다.

결과가 나오지 않는다. LIKE는 포함하고 있는 문자열이 아닌 같은 문자열을 찾는다. 그러므로 성을 쓰지 않고 이름만 쓴다면 결과에 나오지 않는다. 이때 이름을 포함하고 있는 결과를 반환 받고 싶다면 와일드카드(%)를 사용해서 LIKE 연산자와 같이 사용한다. 

 

다시 쿼리를 날려보면 나온다. (% 앞뒤에 붙임에 따라 앞과 뒤쪽으로 포함 여부를 선택할 있다.)

 

 

 

 

 

 

 

 

 

 

댓글