IN() 연산자를 활용한 사용자 지정 순서 조회
MySQL에서 테이블의 한 열을 기준으로 조건을 걸고, 다른 열의 값을 원하는 순서대로 가져오려면 IN() 연산자를 사용하면 됩니다. IN()은 WHERE 절과 함께 사용되어 지정한 값 목록에 해당하는 행만 필터링해 줍니다.
먼저 예제에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable727 (
Name varchar(100),
Score int
);
Query OK, 0 rows affected (0.88 sec)
샘플 데이터 삽입
INSERT 명령을 사용해 테이블에 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable727 values('Chris',45);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable727 values('Robert',89);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable727 values('Carol',94);
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable727 values('David',93);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable727 values('Mike',78);
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable727 values('Sam',67);
Query OK, 1 row affected (0.22 sec)전체 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable727;
위 쿼리는 다음과 같은 결과를 출력합니다.
+--------+-------+
| Name | Score |
+--------+-------+
| Chris | 45 |
| Robert | 89 |
| Carol | 94 |
| David | 93 |
| Mike | 78 |
| Sam | 67 |
+--------+-------+
6 rows in set (0.00 sec)
단일 쿼리로 사용자 지정 순서의 값 선택하기
다음은 Name 열을 기준으로 IN()을 사용하여, 단 하나의 쿼리로 Score 값을 가져오는 방법입니다.
mysql> select Score from DemoTable727 where Name IN('Robert','David','Sam');실행하면 아래와 같은 결과가 출력됩니다.
+-------+
| Score |
+-------+
| 89 |
| 93 |
| 67 |
+-------+
3 rows in set (0.00 sec)
이처럼 IN() 연산자를 사용하면 여러 개의 개별 SELECT 쿼리를 실행할 필요 없이, 단일 쿼리로 원하는 조건의 데이터를 간편하게 조회할 수 있습니다.