1. MySQL LIKE 개요
MySQL의 LIKE 연산자는 데이터베이스에서 특정 패턴과 일치하는 데이터를 검색하는 데 사용됩니다. LIKE는 SQL WHERE 절에서 사용되며 문자열의 일부 또는 전체를 기준으로 검색 조건을 정의할 수 있게 해줍니다. 예를 들어, “특정 문자로 시작하는 이름”이나 “특정 문자를 포함하는 제품 코드”를 검색할 때 유용합니다.
LIKE 연산자의 일반적인 사용 사례
- 부분 일치 검색
- 특정 패턴 검색
- 데이터 필터링
이 연산자는 패턴 매칭에 특화되어 있기 때문에 데이터베이스에서 효율적으로 데이터를 검색하고 작업하는 데 필수적입니다.
2. MySQL LIKE 기본 구문
MySQL에서 LIKE 연산자를 사용하는 기본 구문은 다음과 같습니다:
SELECT column_name FROM table_name WHERE column_name LIKE 'pattern';
LIKE 사용 예시
- 특정 문자로 시작하는 데이터를 검색
SELECT * FROM users WHERE name LIKE 'A%'; - 특정 문자열을 포함하는 데이터를 검색
SELECT * FROM products WHERE product_code LIKE '%123%';
LIKE 연산자는 %와 _와 같은 와일드카드와 함께 사용됩니다. 이를 통해 보다 유연한 검색이 가능합니다.
3. LIKE와 함께 사용하는 와일드카드
LIKE 연산자를 사용할 때 와일드카드를 이용해 검색 패턴을 정의합니다. MySQL은 주로 다음 두 가지 와일드카드를 지원합니다.
% 와일드카드
- 모든 문자열(0개 이상의 문자)과 일치
SELECT * FROM users WHERE email LIKE '%@example.com';
이 예에서는@example.com으로 끝나는 모든 이메일 주소를 검색합니다.
_ 와일드카드
- 단일 문자와 일치
SELECT * FROM products WHERE product_code LIKE '_A%';
이 예에서는 두 번째 문자가A인 모든 제품 코드를 검색합니다.
와일드카드를 올바르게 사용하면 데이터베이스에서 데이터를 효율적으로 필터링할 수 있습니다.
4. 패턴 매칭 기법
LIKE 연산자를 와일드카드와 결합하면 다양한 패턴 매칭 검색을 수행할 수 있습니다.
시작 문자열
- 문자열이 특정 패턴으로 시작하는 데이터를 검색
SELECT * FROM customers WHERE name LIKE 'John%';
이 쿼리는John으로 시작하는 모든 고객 이름을 검색합니다.
끝 문자열
- 문자열이 특정 패턴으로 끝나는 데이터를 검색
SELECT * FROM files WHERE filename LIKE '%.pdf';
이 쿼리는.pdf로 끝나는 모든 파일 이름을 검색합니다.
포함
- 문자열이 특정 패턴을 포함하는 데이터를 검색
SELECT * FROM documents WHERE content LIKE '%MySQL%';
이 쿼리는 내용에MySQL이 포함된 모든 문서를 검색합니다.
5. LIKE에서 특수 문자 이스케이프
LIKE 연산자에서 %와 _는 와일드카드로 특별한 의미를 가집니다. 이를 일반 문자로 검색하려면 이스케이프 문자를 사용해야 합니다.
이스케이프 방법
- 이스케이프 문자를 사용한 검색 예시
SELECT * FROM filenames WHERE filename LIKE 'file\_%' ESCAPE '\';
이 쿼리는file_로 시작하는 모든 파일 이름을 검색합니다._는 보통 와일드카드로 처리되지만, 이스케이프 문자\를 사용하면 일반 문자로 인식됩니다.
6. LIKE 고급 사용법
LIKE 연산자는 다른 SQL 문과 결합하여 보다 복잡한 검색을 수행할 수 있습니다.
JOIN과 결합
- 테이블 간 관련 데이터를 검색
SELECT orders.id, customers.name FROM orders JOIN customers ON orders.customer_id = customers.id WHERE customers.name LIKE '%Smith%';
이 쿼리는 이름에Smith가 포함된 고객의 주문을 가져옵니다.
NOT LIKE를 사용한 부정
- 특정 패턴과 일치하지 않는 데이터를 검색
SELECT * FROM emails WHERE address NOT LIKE '%@spam.com';
이 쿼리는@spam.com으로 끝나지 않는 이메일 주소를 반환합니다.

7. LIKE 사용 시 모범 사례
LIKE 연산자를 사용할 때 고려해야 할 중요한 사항과 모범 사례가 있습니다.
성능 영향
.* LIKE 연산자를 사용할 때, 대용량 데이터셋을 검색하면 성능이 저하될 수 있습니다. 특히 패턴 앞에 %를 두면 인덱스를 효과적으로 사용할 수 없어 쿼리가 느려질 수 있습니다.
적절한 인덱스 사용
- 성능을 향상시키기 위해 필요할 때 인덱스를 생성하는 것을 고려하십시오.
8. MySQL LIKE의 일반적인 사용 사례
MySQL의 LIKE 연산자는 다음과 같은 다양한 시나리오에서 사용됩니다.
고객 검색
- 고객 이름이나 이메일 주소를 기준으로 검색할 때.
제품 코드 검색
- 제품 코드의 일부를 기준으로 제품을 검색할 때.
9. 요약
LIKE 연산자는 MySQL에서 강력한 패턴 매칭 도구입니다. 이 글에서는 기본 구문부터 고급 사용법 및 성능 최적화까지 모두 다루었습니다. LIKE 연산자를 적절히 사용하여 데이터베이스를 효율적으로 검색하고 작업하십시오.
10. 자주 묻는 질문
Q1: LIKE와 =의 차이점은 무엇인가요?
A1: =는 정확히 일치하는 검색에 사용되는 반면, LIKE는 부분 일치 및 패턴 매칭에 사용됩니다.
Q2: LIKE는 대소문자를 구분하나요?
A2: MySQL 기본 설정에서는 LIKE가 대소문자를 구분하지 않습니다. 그러나 BINARY 키워드를 사용하면 대소문자를 구분하도록 만들 수 있습니다.
Q3: LIKE 연산자를 숫자와 함께 사용할 수 있나요?
A3: 기본적으로 문자열에 사용되지만, 숫자를 문자열로 저장한 경우에는 사용할 수 있습니다.


