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

Truy vấn MySQL cập nhật chỉ một trường đơn lẻ thay thế cho NULL

Để làm điều này, bạn có thể sử dụng COALESCE(). Hãy cùng tạo một bảng trước:

mysql> CREATE TABLE DemoTable1805 (
    Name1 VARCHAR(20),
    Name2 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 INSERT:

mysql> INSERT INTO DemoTable1805 VALUES('Chris',NULL); Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1805 VALUES('David','Mike'); Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1805 VALUES(NULL,'Mike'); Query OK, 1 row affected (0.00 sec)

Hiển thị tất cả bản ghi từ bảng bằng lệnh SELECT:

mysql> SELECT * FROM DemoTable1805;

Kết quả sẽ như sau:

+-------+-------+
| Name1 | Name2 |
+-------+-------+
| Chris | NULL  |
| David | Mike  |
| NULL  | Mike  |
+-------+-------+
3 rows in set (0.00 sec)

Dưới đây là truy vấn để cập nhật chỉ một trường:

mysql> UPDATE DemoTable1805
    SET Name1 = COALESCE(Name1, Name2); Query OK, 1 row affected (0.00 sec) Rows matched: 3 Changed: 1 Warnings: 0

Hãy kiểm tra lại các bản ghi trong bảng:

mysql> SELECT * FROM DemoTable1805;

Kết quả sẽ như sau:

+-------+-------+
| Name1 | Name2 |
+-------+-------+
| Chris | NULL  |
| David | Mike  |
| Mike  | Mike  |
+-------+-------+
3 rows in set (0.00 sec)