Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

อัปเดตคอลัมน์หนึ่งด้วยค่าจากอีกคอลัมน์ถ้าคอลัมน์ที่สองไม่ใช่ NULL

การอัปเดตข้อมูลคอลัมน์หนึ่งจากอีกคอลัมน์หนึ่งเมื่อไม่ใช่ NULL ใน MySQL

ใช้คำสั่ง UPDATE ร่วมกับเงื่อนไข WHERE column IS NOT NULL

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่มข้อมูล:

mysql> create table DemoTable (
    UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserFirstName varchar(20),
    ListOfName varchar(20)
);
mysql> insert into DemoTable(UserFirstName,ListOfName) values('John','Larry');
mysql> insert into DemoTable(UserFirstName,ListOfName) values('Carol',null);
mysql> insert into DemoTable(UserFirstName,ListOfName) values('David','Sam');
mysql> insert into DemoTable(UserFirstName,ListOfName) values('Bob',null);
mysql> insert into DemoTable(UserFirstName,ListOfName) values(null,null);

ข้อมูลก่อนอัปเดต:

+--------+---------------+------------+
| UserId | UserFirstName | ListOfName |
+--------+---------------+------------+
| 1      | John          | Larry      |
| 2      | Carol         | NULL       |
| 3      | David         | Sam        |
| 4      | Bob           | NULL       |
| 5      | NULL          | NULL       |
+--------+---------------+------------+

คิวรีอัปเดต UserFirstName ด้วยค่า ListOfName เฉพาะที่ ListOfName ไม่ใช่ NULL:

mysql> update DemoTable set UserFirstName = ListOfName where ListOfName is not null;
Query OK, 2 rows affected (0.26 sec)

ข้อมูลหลังอัปเดต:

+--------+---------------+------------+
| UserId | UserFirstName | ListOfName |
+--------+---------------+------------+
| 1      | Larry         | Larry      |
| 2      | Carol         | NULL       |
| 3      | Sam           | Sam        |
| 4      | Bob           | NULL       |
| 5      | NULL          | NULL       |
+--------+---------------+------------+

จุดสังเกต: แถวที่ 2, 4, 5 ไม่เปลี่ยนแปลงเพราะ ListOfName เป็น NULL | แถวที่ 1 และ 3 ถูกอัปเดต | แถวที่ 5 UserFirstName ยังคงเป็น NULL เพราะ ListOfName ก็เป็น NULL เช่นกัน