LIKE 절은 문자열을 비교할 때 사용되며, 특정 패턴을 가진 문자열을 찾기 위해 사용된다. 보통 WHERE 절과 함께 사용되며, 특정 조건에 맞는 문자열을 선택하고자 할 때 많이 사용된다.
LIKE 절은 비교 연산자의 일종으로, 다음과 같은 형식을 갖는다.
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;
여기서 pattern은 검색할 문자열을 나타내며, 다음과 같은 문자열을 사용할 수 있다.
- % : 0개 이상의 문자를 나타냄.
- _ : 한 개의 문자를 나타냄.
- [] : 괄호 안에 들어있는 문자 중 하나를 나타냄.
- [^] : 괄호 안에 들어있지 않는 문자 중 하나를 나타냄.
예를 들어, 이름이 'John'인 모든 사람을 찾으려면 다음과 같이 사용할 수 있다.
SELECT *
FROM users
WHERE name LIKE 'John';
이 경우 이름이 정확히 'John'인 경우만 선택된다.
이름이 'John'으로 시작하는 모든 사람을 찾을 때는 다음과 같이 사용할 수 있다.
SELECT *
FROM users
WHERE name LIKE 'John%';
이 경우 'John'으로 시작하는 모든 사람이 선택된다. % 기호는 'John' 다음에 0개 이상의 문자가 나올 수 있다는 것을 나타낸다.
이름이 'Jo_n'인 모든 사람을 찾을 땐 다음과 같이 사용할 수 있다,
SELECT *
FROM users
WHERE name LIKE 'Jo_n';
이 경우, 이름이 'John' 또는 'Joan'과 같이 _에 어떤 문자가 들어가든 나머지 문자가 일치하는 경우를 나타낸다.
LIKE 절은 문자열을 비교하고 찾을 수 있지만, 검색 속도가 느리거나 비효율적일 수 도 있다. 대량의 데이터를 처리할 떄는 FULLTEXT 검색 같은 INDEXING 처리를 통한 방법을 고려하는 것이 좋다.
MySQL, POSTGRE 등의 데이터베이스에서 제공하는 문자열 검색 방법중 하나로 전문 검색(FULL-TEXT-SEARCH) 도는 텍스트 검색(TEXT SEARCH) 라고도 부른다.
FULLTEXT 검색은 특정 텍스트 필드에서 키워드 검색을 효율적으로 수행할 수 있도록 지원한다.