순간을 기록으로

[MySQL] 'LIKE'를 이용하여 일부 문자열을 포함하는 행 찾기 본문

Computer Science/Database

[MySQL] 'LIKE'를 이용하여 일부 문자열을 포함하는 행 찾기

luminous13 2021. 11. 9. 21:48

긴 문자열에서 일부 문자열을 찾고 싶은 상황이 종종있습니다. MySQL에서는 이러한 일부 문자열을 포함하는 행을 찾기 위해 'LIKE'라는 문법이 있습니다.

 

열명 LIKE '패턴'

바로 예시로 확인해보겠습니다.

 

 

예시로 사용하는 테이블

 

1.문자열이 'SQL'로 시작하는 text를 가지는 행을 찾고싶다.

여기서 %는 메타문자입니다. 메타문자란 특별한 의미를 가지는 문자라고 생각하면 됩니다. %는 임의의 문자와 매치됩니다. 즉 'SQL%'은 SQL문자열로 시작하는 문자열을 갖는 행을 찾는 것입니다.

 

 

2.위치에 상관없이 text 속성에 'SQL'라는 문자열이 들어간 행 데이터를 찾고 싶다.

%가 앞에 있는데 no가 1인 행데이터는 왜 가능한지 의아해 할 수 있습니다. 주의할점은 %는 빈 문자열과도 매치된다는 점입니다.

 

3. 위치에 상관없이 '%'을 부분 문자열로 갖는 행 데이터를 찾고 싶다.

메타문자와 동일한 문자인 '%'과 '_'이 문자열에 들어가 있을 때는 앞에 이스케이프문자(\)을 붙여 메타문자가 아닌 일반문자로 취급합니다.

 

TIP. 문자열 안에 '(싱글따옴표)를 표현하려면 '를 2개 연속으로 기술하면 됩니다.

IT's --> 'IT''s'

Comments