프로그래밍/MYSQL

mysql 문자열 검색 : 와일드 문자 ( %, _ ) - Like 연산자

타코코딩 2023. 10. 12. 18:28

 

`LIKE` 연산자는 SQL 쿼리에서 문자열 패턴 매칭을 수행하기 위해 사용되는 연산자입니다. `LIKE` 연산자를 사용하여 특정 패턴과 일치하는 문자열을 검색하거나 필터링할 수 있습니다. `LIKE` 연산자는 다음 두 개의 와일드카드 문자와 함께 사용됩니다.
1. `%` (퍼센트 기호): 이것은 어떤 문자열도 될 수 있는 임의의 문자열을 나타내며, 0개 이상의 문자를 나타냅니다.
2. `_`  임의로 글자가 있다고 가정하는 기호입니다

 형식 : where 컬럼명 like '검색문자+와일드문자'

 

-- 사원들 중 김씨성을 가진 모든 사원 조회

SELECT * FROM employee WHERE employee.emp_name LIKE '김%'

-- 폰번호가 010으로 시작하는 영업부의 모든 사원 조회

 

SELECT * FROM employee WHERE employee.phone LIKE '010%'

 

-- 이메일 주소 두번째자리 'a' 가 들어가는 사원 조회

 

SELECT * FROM employee WHERE email LIKE '_a%'

 

-- 이메일 아이디가 4자리인 사원 조회

 

SELECT * FROM employee WHERE email LIKE '____@%'

 

-- 사원명에 삼이 들어가는 사원

SELECT * FROM employee WHERE emp_name LIKE '%삼%'

추가설명

 
가정: 다음 예시에서 우리는 "products" 테이블을 사용하여 제품 목록을 검색하는 상황을 가정합니다. "products" 테이블은 다음과 같은 구조를 갖는다고 가정합니다.


+----+--------------+
| id | product_name |
+----+--------------+
| 1  | Apple        |
| 2  | Banana       |
| 3  | Orange       |
| 4  | Pineapple    |
| 5  | Strawberry   |
+----+--------------+
"Apple"로 시작하는 제품 찾기:




SELECT * FROM products WHERE product_name LIKE 'Apple%';


이 쿼리는 "product_name" 열에서 "Apple"로 시작하는 모든 제품을 반환합니다. 결과로는 "Apple"이라는 제품만 반환됩니다.

"Berry"를 포함하는 제품 찾기:


SELECT * FROM products WHERE product_name LIKE '%Berry%';


이 쿼리는 "product_name" 열에서 "Berry"를 포함하는 모든 제품을 반환합니다. 결과로는 "Strawberry"가 반환됩니다.

두 번째 문자가 "p"인 제품 찾기:


SELECT * FROM products WHERE product_name LIKE '_p%';


이 쿼리는 "product_name" 열에서 두 번째 문자가 "p"로 시작하는 모든 제품을 반환합니다. 결과로는 "Pineapple"이 반환됩니다.

"Banana"로 끝나는 제품 찾기:

SELECT * FROM products WHERE product_name LIKE '%Banana';


이 쿼리는 "product_name" 열에서 "Banana"로 끝나는 모든 제품을 반환합니다. 결과로는 "Banana"이 반환됩니다.

임의의 문자열 찾기:


SELECT * FROM products WHERE product_name LIKE '%a%';


이 쿼리는 "product_name" 열에서 어디에서나 "a" 문자를 포함하는 모든 제품을 반환합니다. 결과로는 "Apple," "Banana," "Orange," "Pineapple," "Strawberry"이 모두 반환됩니다.

LIKE 연산자는 문자열 패턴을 기반으로 데이터를 검색할 때 유용하며, 여러 다양한 검색 조건에 맞는 데이터를 쉽게 추출할 수 있습니다.