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

MySQL 단일 쿼리로 다른 열 기준 사용자 지정 순서의 값 선택하기

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 쿼리를 실행할 필요 없이, 단일 쿼리로 원하는 조건의 데이터를 간편하게 조회할 수 있습니다.