การอัปเดตข้อมูลคอลัมน์หนึ่งจากอีกคอลัมน์หนึ่งเมื่อไม่ใช่ 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 เช่นกัน