본문 바로가기

MySQL

MySQL에서 LIKE 키워드 활용하기

SQL의 LIKE 키워드는 문자열 패턴을 기반으로 데이터를 필터링하는 데 사용됩니다. 이 글에서는 LIKE 키워드의 기본 구문, 사용 예시, 그리고 다양한 패턴 매칭 방법들을 자세히 설명합니다.

 

기본 구문

LIKE 키워드의 기본 구문은 다음과 같습니다.

 

SELECT column1, column2, ...

FROM table_name

WHERE column LIKE pattern;

 

  • column: 패턴 매칭을 적용할 열 이름입니다.
  • pattern: 매칭할 문자열 패턴입니다.

패턴 매칭 연산자

LIKE 키워드에서 사용하는 주요 패턴 매칭 연산자는 다음과 같습니다:

% (퍼센트 기호)

-임의의 문자열을 매칭합니다.

  • 예: LIKE '%pattern%'는 'pattern'이 포함된 모든 문자열을 매칭합니다.

_ (언더스코어)

-임의의 한 문자를 매칭합니다.

  • 예: LIKE '_pattern'는 첫 번째 문자가任意이고 'pattern'이 뒤따르는 문자열을 매칭합니다.

[ ] (대괄호)

  • 지정된 문자 집합 내의 문자를 매칭합니다.
  • 예: LIKE '[abc]'는 'a', 'b', 또는 'c' 문자를 포함하는 문자열을 매칭합니다.

[^ ] (대괄호 내에 캐럿 기호)

  • 지정된 문자 집합 외의 문자를 매칭합니다.
  • 예: LIKE '[^abc]'는 'a', 'b', 또는 'c' 문자를 포함하지 않는 문자열을 매칭합니다.

사용 예시

문자열 포함 여부 확인

 

다음 예시는 customers 테이블에서 고객 이름에 'son'이 포함된 모든 고객을 조회하는 쿼리입니다.

 

SELECT *

FROM customers

WHERE last_name LIKE '%son%';

 

특정 문자로 시작하는 문자열

다음 예시는 products 테이블에서 제품 이름이 'A'로 시작하는 모든 제품을 조회하는 쿼리입니다.

 

SELECT *

FROM products

WHERE product_name LIKE 'A%';

 

특정 문자가 포함된 문자열

다음 예시는 orders 테이블에서 주문 번호가 '123'을 포함하는 모든 주문을 조회하는 쿼리입니다.

 

SELECT *

FROM orders

WHERE order_id LIKE '%123%';

 

임의의 한 문자를 포함하는 문자열다음 예시는 customers 테이블에서 고객 이름의 두 번째 문자가 'o'인 모든 고객을 조회하는 쿼리입니다.

 

SELECT *

FROM customers

WHERE last_name LIKE '_o%';

 

성능 고려 사항

  • 인덱스 사용: LIKE 연산자에서 % 기호가 앞에 오는 경우, 인덱스를 효율적으로 사용할 수 없습니다. 따라서, % 기호를 뒤에 두는 것이 성능을 향상시킬 수 있습니다.
  • 복잡한 패턴 피하기: 너무 복잡한 패턴을 사용하면 쿼리 성능이 저하될 수 있으므로, 간단하고 효율적인 패턴을 사용하는 것이 중요합니다.

결론

LIKE 키워드는 문자열 패턴을 기반으로 데이터를 필터링하는 데 매우 유용한 도구입니다. 다양한 패턴 매칭 연산자를 사용하여 복잡한 문자열 조건을 간단하게 처리할 수 있으며, 대소문자 무시와 인덱스 사용을 고려하여 성능을 최적화할 수 있습니다. 이 정보를 통해, 데이터베이스에서 데이터를 효율적으로 필터링하고 조회할 수 있을 것입니다.