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

MySQL에서 양수 값을 가진 행에 대해 TRUE를 반환하는 쿼리 작성 방법

양수인 행에 대해서는 TRUE를, 음수인 행에 대해서는 FALSE를 반환하고 싶다면 MySQL의 IF() 함수를 사용하면 됩니다. 이번 글에서는 실제 예제를 통해 그 방법을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

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

mysql> create table DemoTable2038
    -> (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Value int
    -> );
Query OK, 0 rows affected (0.87 sec)

2. 샘플 데이터 삽입하기

INSERT 명령을 사용해 양수와 음수가 섞인 레코드들을 입력합니다.

mysql> insert into DemoTable2038(Value) values(57);
Query OK, 1 row affected (0.18 sec)

mysql> insert into DemoTable2038(Value) values(-100);
Query OK, 1 row affected (0.12 sec)

mysql> insert into DemoTable2038(Value) values(-78);
Query OK, 1 row affected (0.42 sec)

mysql> insert into DemoTable2038(Value) values(78);
Query OK, 1 row affected (0.11 sec)

mysql> insert into DemoTable2038(Value) values(91);
Query OK, 1 row affected (0.09 sec)

mysql> insert into DemoTable2038(Value) values(-34);
Query OK, 1 row affected (0.14 sec)

3. 저장된 데이터 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable2038;

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

+----+-------+
| Id | Value |
+----+-------+
| 1  | 57    |
| 2  | -100  |
| 3  | -78   |
| 4  | 78    |
| 5  | 91    |
| 6  | -34 |
+----+-------+
6 rows in set (0.00 sec)

4. 양수 여부를 판별하는 쿼리 실행하기

이제 IF() 함수를 사용해 Value 컬럼의 값이 0보다 크면 TRUE, 그렇지 않으면 FALSE를 반환하는 쿼리를 작성합니다.

mysql> select *,if(Value > 0,true,false) as Result from DemoTable2038;

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

+----+-------+--------+
| Id | Value | Result |
+----+-------+--------+
| 1  | 57    | 1      |
| 2  | -100  | 0      |
| 3  | -78   | 0      |
| 4  | 78    | 1      |
| 5  | 91    | 1      |
| 6  | -34   | 0     |
+----+-------+--------+
6 rows in set (0.00 sec)

결과 해석

출력 결과를 보면 Result 컬럼에서 양수 값(57, 78, 91)을 가진 행은 1(TRUE)로, 음수 값(-100, -78, -34)을 가진 행은 0(FALSE)으로 표시된 것을 확인할 수 있습니다. MySQL에서는 BOOLEAN 타입이 사실상 TINYINT(1)로 처리되기 때문에 TRUE와 FALSE가 각각 1과 0으로 출력되는 점도 참고하시기 바랍니다.