Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL LIKE 연산자와 함께 사용할 수 있는 와일드카드 문자의 종류와 활용 방법

MySQL에서 LIKE 연산자와일드카드(WILDCARD) 문자와 함께 사용되어 특정 패턴을 포함하는 문자열을 검색합니다. 와일드카드란 복잡한 조건에 일치하는 데이터를 손쉽게 찾을 수 있도록 도와주는 특수 문자를 의미합니다. LIKE 연산자와 함께 사용할 수 있는 와일드카드는 크게 두 가지입니다.

% – 퍼센트(Percentage) 와일드카드

'%' 와일드카드는 0개, 1개 또는 그 이상의 임의의 문자에 해당하는 패턴을 지정할 때 사용됩니다. 기본적인 사용 문법은 다음과 같습니다.

Select Statement…Where column_name LIKE 'X%'

여기서 X는 지정된 시작 패턴을 나타내며, %는 0개부터 시작해 임의 개수의 문자와 일치합니다.

% 와일드카드는 지정된 패턴과 다양한 방식으로 조합해 사용할 수 있습니다. 아래 예제에서 X는 사용자가 지정한 패턴을 의미합니다.

1. LIKE 'X%' : "X"로 시작하는 모든 값 찾기

mysql> Select * from Student Where name LIKE 'a%';
+------+-------+---------+---------+
| Id   | Name  | Address | Subject |
+------+-------+---------+---------+
| 2    | Aarav | Mumbai  | History |
+------+-------+---------+---------+
1 row in set (0.00 sec)

2. LIKE '%X' : "X"로 끝나는 모든 값 찾기

mysql> Select * from Student Where name LIKE '%v';
+------+--------+---------+-----------+
| Id   | Name   | Address | Subject   |
+------+--------+---------+-----------+
| 1    | Gaurav | Delhi   | Computers |
| 2    | Aarav  | Mumbai  | History   |
| 20   | Gaurav | Jaipur  | Computers |
+------+--------+---------+-----------+
3 rows in set (0.00 sec)

3. LIKE '%X%' : 문자열 어느 위치든 "X"를 포함하는 모든 값 찾기

mysql> Select * from Student Where name LIKE '%h%';
+------+---------+---------+----------+
| Id   | Name    | Address | Subject  |
+------+---------+---------+----------+
| 15   | Harshit | Delhi   | Commerce |
| 21   | Yashraj | NULL    | Math     |
+------+---------+---------+----------+
2 rows in set (0.00 sec)

4. LIKE 'X%X' : "X"로 시작하고 "X"로 끝나는 모든 값 찾기

mysql> Select * from Student Where name LIKE 'a%v';
+------+-------+---------+---------+
| Id   | Name  | Address | Subject |
+------+-------+---------+---------+
| 2    | Aarav | Mumbai  | History |
+------+-------+---------+---------+
1 row in set (0.00 sec)

_ – 언더스코어(Underscore) 와일드카드

'_' 언더스코어 와일드카드는 정확히 한 개의 문자와 일치시킬 때 사용됩니다. 기본적인 사용 문법은 다음과 같습니다.

Select Statement…Where column_name LIKE 'X_'

여기서 X는 지정된 시작 패턴이며, _는 정확히 하나의 문자와 일치합니다.

언더스코어 '_' 와일드카드는 단독으로 사용하거나 % 와일드카드와 조합하여 다양한 패턴 검색에 활용할 수 있습니다. 아래 예제에서 X는 지정된 패턴을 의미합니다.

1. LIKE 'X_' : "X"로 시작하고 그 뒤에 정확히 한 문자가 있는 값 찾기

mysql> Select * from student WHERE year_of_Admission LIKE '200_';
+------+---------+---------+-----------+--------------------+
| Id   | Name    | Address | Subject   | year_of_Admission  |
+------+---------+---------+-----------+--------------------+
| 1    | Gaurav  | Delhi   | Computers |               2001 |
| 15   | Harshit | Delhi   | Commerce  |               2009 |
| 21   | Yashraj | NULL    | Math      |               2000 |
+------+---------+---------+-----------+--------------------+
3 rows in set (0.00 sec)

2. LIKE '_X' : "X"로 끝나고 그 앞에 정확히 한 문자가 있는 값 찾기

mysql> Select * from student WHERE year_of_Admission LIKE '_017';
+------+--------+---------+-----------+--------------------+
| Id   | Name   | Address | Subject   | year_of_Admission  |
+------+--------+---------+-----------+--------------------+
| 20   | Gaurav | Jaipur  | Computers |               2017 |
+------+--------+---------+-----------+--------------------+
1 row in set (0.00 sec)

3. LIKE '_X%' : 두 번째 자리에 "X"가 있는 값 찾기 (% 와일드카드와 조합)

mysql> Select * from student WHERE Name LIKE '_a%';
+------+---------+---------+-----------+--------------------+
| Id   | Name    | Address | Subject   | year_of_Admission  |
+------+---------+---------+-----------+--------------------+
| 1    | Gaurav  | Delhi   | Computers |               2001 |
| 2    | Aarav   | Mumbai  | History   |               2010 |
| 15   | Harshit | Delhi   | Commerce  |               2009 |
| 20   | Gaurav  | Jaipur  | Computers |               2017 |
| 21   | Yashraj | NULL    | Math      |               2000 |
+------+---------+---------+-----------+--------------------+
5 rows in set (0.00 sec)

4. LIKE 'X_%_%' : "X"로 시작하고 길이가 최소 세 문자 이상인 값 찾기 (% 와일드카드와 조합)

mysql> Select * from student WHERE Name LIKE 'g_%_%';
+------+--------+---------+-----------+--------------------+
| Id   | Name   | Address | Subject   | year_of_Admission  |
+------+--------+---------+-----------+--------------------+
| 1    | Gaurav | Delhi   | Computers |               2001 |
| 20   | Gaurav | Jaipur  | Computers |               2017 |
+------+--------+---------+-----------+--------------------+
2 rows in set (0.00 sec)