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

MySQL 쿼리에 IF 문을 삽입하는 올바른 방법

MySQL에서는 IF() 함수를 사용하면 SELECT 쿼리 안에서 조건문을 활용할 수 있습니다. 조건이 참이면 첫 번째 값을, 거짓이면 두 번째 값을 반환하는 방식입니다.

기본 문법

MySQL 쿼리에 IF 문을 삽입하려면 아래와 같은 구문을 사용합니다.

SELECT yourColumnName, IF(yourCondition, yourStatement1, yourStatement2) FROM yourTableName;

예제로 살펴보기

1단계: 테이블 생성

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

mysql> CREATE TABLE DemoTable1571
    -> (
    -> Id int,
    -> Value int
    -> );
Query OK, 0 rows affected (5.63 sec)

2단계: 데이터 삽입

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

mysql> INSERT INTO DemoTable1571 VALUES(101,500);
Query OK, 1 row affected (1.07 sec)
mysql> INSERT INTO DemoTable1571 VALUES(102,450);
Query OK, 1 row affected (0.47 sec)
mysql> INSERT INTO DemoTable1571 VALUES(103,300);
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO DemoTable1571 VALUES(104,700);
Query OK, 1 row affected (0.23 sec)

3단계: 전체 데이터 조회

SELECT 문으로 테이블의 모든 레코드를 확인합니다.

mysql> SELECT * FROM DemoTable1571;

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

+------+-------+
| Id   | Value |
+------+-------+
|  101 |   500 |
|  102 |   450 |
|  103 |   300 |
|  104 |   700 |
+------+-------+
4 rows in set (0.00 sec)

IF 문을 활용한 조건 쿼리

이제 IF 문을 사용해 Value 값이 550보다 큰지 여부를 판별하는 쿼리를 작성해 보겠습니다.

mysql> SELECT Value, IF(Value > 550, 'Value is greater than 550', 'Value is less than 550') FROM DemoTable1571;

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

+-------+------------------------------------------------------------------------+
| Value | if(Value > 550, 'Value is greater than 550','Value is less than 550')  |
+-------+------------------------------------------------------------------------+
|   500 | Value is less than 550                                                 |
|   450 | Value is less than 550                                                 |
|   300 | Value is less than 550                                                 |
|   700 | Value is greater than 550                                              |
+-------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)

정리

IF(조건식, 참일 때 값, 거짓일 때 값) 형태로 작성하면 쿼리 결과에 조건 분기를 손쉽게 적용할 수 있습니다. 위 예제에서는 Value 값이 550을 초과하는 경우와 그렇지 않은 경우를 각각 다른 문자열로 출력했습니다. 이처럼 IF() 함수는 데이터를 조건에 따라 가공해서 보여줄 때 매우 유용하게 활용됩니다.