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 연산자를 사용하면 다양한 패턴 매칭 방법을 구현할 수 있습니다.
Starts With (시작)
- 문자열이 특정 패턴으로 시작하는 데이터 검색
SELECT * FROM customers WHERE name LIKE 'John%';이는John으로 시작하는 모든 고객 이름을 찾습니다.
Ends With (끝)
- 문자열이 특정 패턴으로 끝나는 데이터 검색
SELECT * FROM files WHERE filename LIKE '%.pdf';이는.pdf로 끝나는 모든 파일명을 찾습니다.
Contains (포함)
- 문자열이 특정 패턴을 포함하는 데이터 검색
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: 일반적으로 문자열에 사용되지만, 숫자가 문자열로 저장된 경우에는 사용할 수 있습니다.


