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

MySQL에서 NULL 또는 NULL이 아닌 값으로 테이블의 모든 필드를 업데이트하는 방법

MySQL에서는 IS NULL 연산자와 UPDATE 문을 조합하면, 특정 컬럼이 NULL인 행을 손쉽게 찾아 원하는 값으로 일괄 업데이트할 수 있습니다. 이번 글에서는 예제 테이블을 만들고, NULL이 포함된 필드를 조건에 맞게 업데이트하는 전체 과정을 단계별로 살펴보겠습니다.

1. 예제 테이블 생성

먼저 DemoTable이라는 이름의 테이블을 생성합니다.

mysql> create table DemoTable
    -> (
    -> Id int,
    -> Name varchar(20)
    -> );
Query OK, 0 rows affected (0.58 sec)

2. 샘플 데이터 삽입

INSERT 명령을 사용해 NULL 값을 포함한 레코드를 몇 개 추가합니다.

mysql> insert into DemoTable values(10,NULL);
Query OK, 1 row affected (0.32 sec)
mysql> insert into DemoTable values(NULL,'David');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values(NULL,NULL);
Query OK, 1 row affected (0.15 sec)

3. 현재 데이터 확인

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

mysql> select * from DemoTable;

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

+------+-------+
|   Id | Name  |
+------+-------+
|   10 | NULL  |
| NULL | David |
| NULL | NULL  |
+------+-------+
3 rows in set (0.00 sec)

위 결과를 보면 Id 또는 Name 컬럼에 NULL 값이 포함된 행들이 존재합니다.

4. UPDATE 쿼리로 NULL 필드 일괄 업데이트

이제 WHERE 절에서 IS NULL 조건을 사용하여, Id 또는 Name 중 하나라도 NULL인 모든 행의 Name 값을 'Robert'로 변경하는 쿼리를 실행합니다.

mysql> update DemoTable set Name='Robert' where Id IS NULL or Name IS NULL;
Query OK, 3 rows affected (0.22 sec)
Rows matched: 3 Changed: 3 Warnings: 0

쿼리 실행 결과, 조건에 해당하는 3개의 행이 모두 성공적으로 변경되었습니다.

5. 업데이트 후 결과 확인

변경된 내용을 확인하기 위해 다시 한 번 테이블을 조회합니다.

mysql> select * from DemoTable;

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

+------+--------+
|   Id | Name   |
+------+--------+
|   10 | Robert |
| NULL | Robert |
| NULL | Robert |
+------+--------+
3 rows in set (0.00 sec)

정리

MySQL에서 NULL 값을 가진 레코드를 찾아 업데이트할 때는 반드시 IS NULL 또는 IS NOT NULL 연산자를 사용해야 합니다. 일반적인 비교 연산자(=, !=)로는 NULL을 비교할 수 없기 때문입니다. 위 예제처럼 WHERE 절에 여러 IS NULL 조건을 OR로 연결하면, 원하는 컬럼 중 하나라도 NULL인 행을 한 번의 쿼리로 일괄 처리할 수 있습니다.