Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 NULL을 0으로 타입캐스팅

<시간/>

IFNULL() 함수를 사용하여 NULL을 0으로 형변환할 수 있습니다. 구문은 다음과 같습니다 -

select ifnull(yourColumnName) as anyVariableName from yourTableName;

위의 개념을 이해하기 위해 먼저 테이블을 생성하겠습니다 -

mysql> create table TypecastDemo
   −> (
      −> AccountNumber int
   −> );
Query OK, 0 rows affected (0.84 sec)

NULL 값을 가진 일부 레코드를 삽입해 보겠습니다. 레코드를 삽입하는 쿼리는 다음과 같습니다 -

mysql> insert into TypecastDemo values(NULL);
Query OK, 1 row affected (0.13 sec)

mysql> insert into TypecastDemo values(1234);
Query OK, 1 row affected (0.14 sec)

mysql> insert into TypecastDemo values(9876);
Query OK, 1 row affected (0.14 sec)

mysql> insert into TypecastDemo values(6666);
Query OK, 1 row affected (0.16 sec)

mysql> insert into TypecastDemo values(NULL);
Query OK, 1 row affected (0.27 sec)

mysql> insert into TypecastDemo values(NULL);
Query OK, 1 row affected (0.36 sec)

mysql> insert into TypecastDemo values(3214);
Query OK, 1 row affected (0.34 sec)

이제 select 문을 사용하여 모든 레코드를 표시할 수 있습니다. 쿼리는 다음과 같습니다 -

mysql> select *from TypecastDemo;

다음은 출력입니다 -

+---------------+
| AccountNumber |
+---------------+
|          NULL |
|          1234 |
|          9876 |
|          6666 |
|          NULL |
|          NULL |
|          3214 |
 +---------------+
7 rows in set (0.00 sec)

위에서 본 구문을 적용하여 NULL을 0으로 형변환합니다. 쿼리는 다음과 같습니다. -

mysql> select ifnull(AccountNumber,0) as TypeCastNullToZero from TypecastDemo;

다음은 출력입니다 -

+--------------------+
| TypeCastNullToZero |
+--------------------+
|                  0 |
|               1234 |
|               9876 |
|               6666 |
|                  0 |
|                  0 |
|               3214 |
+--------------------+
7 rows in set (0.00 sec)

둘 이상의 열을 원한다고 가정하면 COALESCE를 사용할 수 있습니다.