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

MySQL: อัปเดตค่า NULL ให้เป็นค่าที่ต้องการ

การหาและแทนที่ค่า NULL

ใช้ IS NULL ในเงื่อนไข WHERE เพื่อหาแถวที่มีค่า NULL แล้ว UPDATE ให้เป็นค่าใหม่

รูปแบบคำสั่ง

UPDATE yourTableName 
SET yourColumnName = 'newValue' 
WHERE yourColumnName IS NULL;

ตัวอย่าง: เปลี่ยน ClientName ที่เป็น NULL เป็น 'Chris'

mysql> create table DemoTable768 (
    Clientid int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName varchar(100),
    ClientAge int );
Query OK, 0 rows affected (0.47 sec)
mysql> insert into DemoTable768(ClientName,ClientAge) values('John',23);
mysql> insert into DemoTable768(ClientName,ClientAge) values(NULL,26);
mysql> insert into DemoTable768(ClientName,ClientAge) values('Carol',28);
mysql> insert into DemoTable768(ClientName,ClientAge) values(NULL,24);

ก่อนอัปเดต

+----------+------------+-----------+
| Clientid | ClientName | ClientAge |
+----------+------------+-----------+
| 1        | John       | 23        |
| 2        | NULL       | 26        |
| 3        | Carol      | 28        |
| 4        | NULL       | 24        |
+----------+------------+-----------+

คำสั่ง UPDATE

mysql> update DemoTable768 
set ClientName = 'Chris' 
where ClientName IS NULL;
Query OK, 2 rows affected (0.41 sec)

หลังอัปเดต

+----------+------------+-----------+
| Clientid | ClientName | ClientAge |
+----------+------------+-----------+
| 1        | John       | 23        |
| 2        | Chris      | 26        |
| 3        | Carol      | 28        |
| 4        | Chris      | 24        |
+----------+------------+-----------+

ฟังก์ชันเสริม: COALESCE() และ IFNULL()

  • COALESCE(col, 'default') - คืนค่าแรกที่ไม่ใช่ NULL
  • IFNULL(col, 'default') - MySQL เฉพาะ คืนค่า default ถ้า col เป็น NULL
  • ใช้ใน SELECT เพื่อแสดงค่าแทน NULL โดยไม่ต้อง UPDATE จริง

สรุป

ใช้ WHERE column IS NULL เพื่อระบุแถวที่ต้องการแก้ไข แล้ว SET column = 'value' ให้ค่าใหม่