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

MySQL에서 0을 null로 바꾸시겠습니까?

<시간/>

MySQL의 NULLIF()를 사용하여 0을 NULL로 바꿀 수 있습니다. 구문은 다음과 같습니다 -

SELECT *,NULLIF(yourColumnName,0) as anyVariableName from yourTableName;

위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -

mysql> create table Replace0WithNULLDemo
   -> (
   -> Id int NOT NULL auto_increment,
   -> Name varchar(20),
   -> Marks int,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.53 sec)

이제 insert 명령을 사용하여 테이블에 일부 레코드를 삽입할 수 있습니다. 쿼리는 다음과 같습니다 -

mysql> insert into Replace0WithNULLDemo(Name,Marks) values('John',76);
Query OK, 1 row affected (0.16 sec)

mysql> insert into Replace0WithNULLDemo(Name,Marks) values('Carol',86);
Query OK, 1 row affected (0.20 sec)

mysql> insert into Replace0WithNULLDemo(Name,Marks) values('Sam',0);
Query OK, 1 row affected (0.17 sec)

mysql> insert into Replace0WithNULLDemo(Name,Marks) values('Mike',0);
Query OK, 1 row affected (0.16 sec)

mysql> insert into Replace0WithNULLDemo(Name,Marks) values('Larry',98);
Query OK, 1 row affected (0.19 sec)

mysql> insert into Replace0WithNULLDemo(Name,Marks) values('Bob',0);
Query OK, 1 row affected (0.17 sec)

select 문을 사용하여 테이블의 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> select *from Replace0WithNULLDemo;

다음은 출력입니다 -

+----+-------+-------+
| Id | Name  | Marks |
+----+-------+-------+
|  1 | John  | 76    |
|  2 | Carol | 86    |
|  3 | Sam   | 0     |
|  4 | Mike  | 0     |
|  5 | Larry | 98    |
|  6 | Bob   | 0     |
+----+-------+-------+
6 rows in set (0.00 sec)

이제 0을 NULL로 바꾸자. 쿼리는 다음과 같습니다 -

mysql> select *,NULLIF(Marks,0) as ReplaceZeroWithNULL from Replace0WithNULLDemo;

다음은 new가 0을 NULL -

로 대체한 새 열을 표시하는 출력입니다.
+----+-------+-------+---------------------+
| Id | Name  | Marks | ReplaceZeroWithNULL |
+----+-------+-------+---------------------+
| 1  | John  | 76    | 76                  |
| 2  | Carol | 86    | 86                  |
| 3  | Sam   | 0     | NULL                |
| 4  | Mike  | 0     | NULL                |
| 5  | Larry | 98    | 98                  |
| 6  | Bob   | 0     | NULL                |
+----+-------+-------+---------------------+
6 rows in set (0.00 sec)