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

MySQL LIKE 절로 'Joh'로 시작하는 여러 값 조회하기 – 실전 예제 가이드

MySQL에서 LIKE 절와일드카드(%)를 활용하면 특정 문자열로 시작하는 여러 값을 손쉽게 조회할 수 있습니다. 이번 글에서는 'Joh'로 시작하는 이름들을 가져오는 방법을 단계별 예제와 함께 살펴보겠습니다.


1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable
(
    Name varchar(40)
);
Query OK, 0 rows affected (0.55 sec)

2. 샘플 데이터 삽입하기

INSERT 명령을 사용해 테이블에 여러 개의 레코드를 추가합니다.

mysql> insert into DemoTable values('John');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('Sam');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('Mike');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('Ethan');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('Johnson');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('Bob');
Query OK, 1 row affected (0.12 sec)

3. 전체 데이터 확인하기

SELECT 문을 실행해 테이블에 저장된 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+---------+
| Name    |
+---------+
| John    |
| Sam     |
| Mike    |
| Ethan   |
| Johnson |
| Bob     |
+---------+
6 rows in set (0.00 sec)

4. 'Joh'로 시작하는 여러 값 조회하기

다음은 UNIONLIKE 연산자를 조합하여 'Joh'로 시작하는 여러 값을 한 번에 가져오는 쿼리입니다. 두 개의 SELECT 문 결과를 하나로 합친 뒤, WHERE 절에서 LIKE 'Joh%' 조건을 적용하는 방식입니다.

mysql> select *from(
    select Name as myValue from DemoTable union
    select Name from DemoTable
)tbl
where myValue like 'Joh%';

실행 결과는 다음과 같습니다.

+---------+
| myValue |
+---------+
| John    |
| Johnson |
+---------+
2 rows in set (0.00 sec)

핵심 정리

  • % 와일드카드는 임의의 문자열(0개 이상)을 의미하므로 'Joh%'는 'John', 'Johnson'처럼 'Joh'로 시작하는 모든 값과 일치합니다.
  • UNION은 여러 SELECT 문의 결과를 하나의 집합으로 결합할 때 사용되며, 이후 WHERE 절에서 필터링할 수 있습니다.
  • 단순히 한 테이블에서 조건에 맞는 값만 찾는다면 SELECT * FROM DemoTable WHERE Name LIKE 'Joh%';처럼 더 간결하게 작성할 수도 있습니다.