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

MySQL 단일 쿼리에서 여러 행을 조회하는 방법 – LIKE 연산자 활용 가이드

MySQL에서 하나의 쿼리만으로 여러 개의 행(row)을 조회하려면 LIKE 연산자를 사용하면 됩니다. LIKE 연산자는 특정 패턴과 일치하는 문자열을 검색할 때 유용하며, 와일드카드 문자인 %와 함께 사용하면 원하는 조건에 맞는 여러 행을 한 번에 가져올 수 있습니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable1385
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name varchar(20)
-> );
Query OK, 0 rows affected (0.90 sec)

위 쿼리는 자동 증가(AUTO_INCREMENT) 기본키인 Id 컬럼과 이름을 저장하는 Name 컬럼으로 구성된 테이블을 만듭니다.

2. 샘플 데이터 삽입하기

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

mysql> insert into DemoTable1385(Name) values('Chris Brown');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1385(Name) values('Adam Smith');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable1385(Name) values('Carol Taylor');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1385(Name) values('John Doe');
Query OK, 1 row affected (0.48 sec)
mysql> insert into DemoTable1385(Name) values('John Smith');
Query OK, 1 row affected (0.14 sec)

3. 전체 데이터 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select * from DemoTable1385;

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

+----+--------------+
| Id | Name |
+----+--------------+
| 1 | Chris Brown |
| 2 | Adam Smith |
| 3 | Carol Taylor |
| 4 | John Doe |
| 5 | John Smith |
+----+--------------+
5 rows in set (0.00 sec)

4. LIKE 연산자로 여러 행 조회하기

이제 단일 쿼리에서 여러 행을 얻는 핵심 부분입니다. 아래와 같이 LIKE 연산자와 와일드카드 %를 사용하여 'Smith'로 끝나는 이름을 가진 모든 행을 조회할 수 있습니다.

mysql> select * from DemoTable1385 where Name LIKE '%Smith';

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

+----+------------+
| Id | Name |
+----+------------+
| 2 | Adam Smith |
| 5 | John Smith |
+----+------------+
2 rows in set (0.00 sec)

LIKE 연산자 패턴 정리

와일드카드 위치에 따라 검색 결과가 달라지므로, 주요 패턴을 이해해 두면 활용도가 높습니다.

  • '%Smith' : 이름이 'Smith'로 끝나는 모든 행 조회
  • 'Smith%' : 이름이 'Smith'로 시작하는 모든 행 조회
  • '%Smith%' : 이름 중간에 'Smith'가 포함된 모든 행 조회

이처럼 LIKE 연산자를 활용하면 별도의 복잡한 조건 없이도 하나의 쿼리로 조건에 맞는 여러 행을 손쉽게 조회할 수 있습니다.