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

MySQL에서 IF() 함수로 조건에 따라 값 설정하기

MySQL에서 조건에 따라 값을 설정하고 싶다면 IF() 함수를 사용하면 됩니다. IF() 함수는 IF(조건, 참일_때_반환값, 거짓일_때_반환값) 형식으로 작성하며, 주어진 조건이 참인지 거짓인지에 따라 서로 다른 값을 반환합니다.

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

mysql> create table DemoTable
    -> (
    -> Age int
    -> );
Query OK, 0 rows affected (0.55 sec)

insert 명령을 사용해 테이블에 몇 개의 레코드를 삽입합니다.

mysql> insert into DemoTable values(19);
Query OK, 1 row affected (0.20 sec)

mysql> insert into DemoTable values(16);
Query OK, 1 row affected (0.10 sec)

mysql> insert into DemoTable values(17);
Query OK, 1 row affected (0.12 sec)

mysql> insert into DemoTable values(22);
Query OK, 1 row affected (0.19 sec)

select 문을 사용하여 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

위 쿼리는 다음과 같은 결과를 출력합니다.

+------+
| Age  |
+------+
|   19 |
|   16 |
|   17 |
|   22 |
+------+
4 rows in set (0.00 sec)

조건에 따라 값을 설정하는 쿼리

다음은 IF() 함수를 활용해 조건에 따라 값을 설정하는 쿼리입니다. 나이(Age)가 18보다 크면 'You are qualified!'를, 그렇지 않으면 'Sorry, you are rejected!'를 반환하도록 작성했습니다.

mysql> select Age,if(Age > 18,'You are qualified!','Sorry, you are rejected!') AS Result from
DemoTable;

출력 결과

위 쿼리는 다음과 같은 결과를 출력합니다.

+------+-------------------------+
| Age  | Result                  |
+------+-------------------------+
|   19 | You are qualified!      |
|   16 | Sorry, you are rejected!|
|   17 | Sorry, you are rejected!|
|   22 | You are qualified!      |
+------+-------------------------+
4 rows in set (0.00 sec)

출력 결과를 보면 나이가 19와 22인 레코드는 조건(Age > 18)이 참이므로 'You are qualified!'가 반환되었고, 16과 17인 레코드는 조건이 거짓이므로 'Sorry, you are rejected!'가 반환된 것을 확인할 수 있습니다. 이처럼 IF() 함수를 사용하면 별도의 애플리케이션 로직 없이도 쿼리 내에서 간단한 조건 분기를 처리할 수 있습니다.