Computer >> Máy Tính >  >> Lập trình >> MySQL

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

Đối với điều này, hãy sử dụng IF () với thuộc tính IS NULL. Đầu tiên chúng ta hãy tạo một bảng -

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

Chèn một số bản ghi vào bảng bằng lệnh chèn -

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ị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select * from DemoTable1976;

Điều này sẽ tạo ra kết quả sau -

+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| John      |      Doe |
| John      |     NULL |
| NULL      |   Miller |
| Chris     |    Brown |
+-----------+----------+
4 rows in set (0.00 sec)

Đây là truy vấn để cập nhật một cột nếu null nếu không thì cập nhật cột bao phấn, ngược lại nếu cả hai cột không null thì không làm gì cả -

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

Hãy để chúng tôi kiểm tra các bản ghi bảng một lần nữa -

mysql> select * from DemoTable1976;

Điều này sẽ tạo ra kết quả sau -

+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| John      |      Doe |
| John      |    Brown |
| David     |   Miller |
| Chris     |    Brown |
+-----------+----------+
4 rows in set (0.00 sec)