Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cập nhật cột A nếu NULL, ngược lại cập nhật cột B, nếu cả hai không NULL thì không làm gì trong MySQL


Sử dụng hàm IF() kết hợp với IS NULL. Tạo bảng mẫu:

mysql> create table DemoTable1976 ( FirstName varchar(20), LastName varchar(20) ); Query OK, 0 rows affected (0.00 sec)

Thêm bản ghi:

mysql> insert into DemoTable1976 values('John','Doe'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1976 values('John',NULL); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1976 values(NULL,'Miller'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1976 values('Chris','Brown'); Query OK, 1 row affected (0.00 sec)

Hiển thị dữ liệu ban đầu:

mysql> select * from DemoTable1976;
+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| John      | Doe      |
| John      | NULL     |
| NULL      | Miller   |
| Chris     | Brown    |
+-----------+----------+
4 rows in set (0.00 sec)

Truy vấn cập nhật: nếu FirstName NULL thì gán 'David', nếu LastName NULL thì gán 'Brown', cả hai không NULL thì giữ nguyên:

mysql> update DemoTable1976 set FirstName=if(FirstName IS NULL,'David',FirstName), LastName=if(LastName IS NULL,'Brown',LastName); Query OK, 2 rows affected (0.00 sec) Rows matched: 4 Changed: 2 Warnings: 0

Kiểm tra lại:

mysql> select * from DemoTable1976;
+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| John      | Doe      |
| John      | Brown    |
| David     | Miller   |
| Chris     | Brown    |
+-----------+----------+
4 rows in set (0.00 sec)