MySQL에서 이름이 저장된 열에서 특정 성(last name)을 검색하려면 LIKE 연산자를 사용하면 됩니다. 와일드카드 문자인 %를 활용하면 문자열 내 원하는 위치의 단어도 손쉽게 찾을 수 있습니다.
먼저 예제에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
-> (
-> CustomerName varchar(100),
-> CustomerAge int
-> );
Query OK, 0 rows affected (0.77 sec)
데이터 삽입하기
INSERT 명령어를 사용해 테이블에 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable values('John Doe',34);
Query OK, 1 row affected (1.32 sec)
mysql> insert into DemoTable values('David Miller',24);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('Bob Doe',27);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('Carol Taylor',29);
Query OK, 1 row affected (0.13 sec)전체 데이터 조회하기
SELECT 문으로 테이블에 저장된 모든 레코드를 확인합니다.
mysql> select *from DemoTable;
출력 결과
위 쿼리는 다음과 같은 결과를 출력합니다.
+--------------+-------------+
| CustomerName | CustomerAge |
+--------------+-------------+
| John Doe | 34 |
| David Miller | 24 |
| Bob Doe | 27 |
| Carol Taylor | 29 |
+--------------+-------------+
4 rows in set (0.00 sec)
LIKE 연산자로 성 검색하기
열에서 특정 성을 검색하는 쿼리는 다음과 같습니다. '%Doe%'처럼 앞뒤에 와일드카드를 붙이면 이름 중간이나 끝에 'Doe'가 포함된 모든 레코드가 조회됩니다.
mysql> select *from DemoTable where CustomerName LIKE '%Doe%';
출력 결과
위 쿼리 실행 시 다음과 같은 결과를 얻을 수 있습니다.
+--------------+-------------+
| CustomerName | CustomerAge |
+--------------+-------------+
| John Doe | 34 |
| Bob Doe | 27 |
+--------------+-------------+
2 rows in set (0.00 sec)
결과를 보면 'Doe'라는 성을 가진 John Doe와 Bob Doe 두 명만 정확히 필터링되어 반환된 것을 확인할 수 있습니다. 이처럼 LIKE 연산자와 와일드카드 조합은 부분 문자열 검색에 매우 유용하게 활용됩니다.