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

MySQL에서 WHERE IN 절을 사용해 쿼리에 배열 전달하는 방법

MySQL에서는 WHERE IN 절을 활용하면 하나의 쿼리에 여러 값을 배열처럼 전달할 수 있습니다. 이 방법은 특정 조건에 해당하는 여러 레코드를 한 번에 조회할 때 매우 유용합니다. 지금부터 예제를 통해 단계별로 살펴보겠습니다.

1. 예제용 테이블 생성

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

mysql> create table PassingAnArrayDemo
    -> (
    -> id int,
    -> Firstname varchar(100)
    -> );
Query OK, 0 rows affected (1.60 sec)

idFirstname 두 개의 컬럼으로 구성된 간단한 테이블입니다.

2. 샘플 데이터 삽입

이제 테이블에 레코드를 삽입해 보겠습니다.

mysql> insert into PassingAnArrayDemo values(1,'John'),(2,'Carol'),(3,'Smith'),(4,'Bob'),(5,'Johnson'),(6,'David'),(7,'Sam'),(8,'Jessica');
Query OK, 8 rows affected (0.32 sec)
Records: 8  Duplicates: 0  Warnings: 0

3. 전체 레코드 조회

삽입된 모든 레코드를 확인합니다.

mysql> select *from PassingAnArrayDemo;

다음은 실행 결과입니다.

+------+-----------+
| id   | Firstname |
+------+-----------+
|    1 | John      |
|    2 | Carol     |
|    3 | Smith     |
|    4 | Bob       |
|    5 | Johnson   |
|    6 | David     |
|    7 | Sam       |
|    8 | Jessica   |
+------+-----------+
8 rows in set (0.00 sec)

4. WHERE IN 절로 배열 전달하기

다음은 WHERE IN 절을 사용하여 배열 형태의 값을 쿼리에 전달하는 기본 구문입니다.

mysql> SELECT *
    -> FROM PassingAnArrayDemo where id IN(1,3,6);

다음은 실행 결과입니다.

+------+-----------+
| id   | Firstname |
+------+-----------+
|    1 | John      |
|    3 | Smith     |
|    6 | David     |
+------+-----------+
3 rows in set (0.04 sec)

위 예제에서 볼 수 있듯이 IN(1,3,6)처럼 괄호 안에 원하는 값을 쉼표로 구분하여 나열하면, 해당 값과 일치하는 레코드만 필터링되어 반환됩니다. 실제 애플리케이션에서는 PHP의 implode()나 자바스크립트의 join() 등을 사용해 배열을 쉼표로 구분된 문자열로 변환한 뒤 IN 절에 동적으로 삽입하는 방식으로 활용할 수 있습니다.