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

ใช้ COALESCE() กับ UPDATE แทนที่ NULL ด้วยค่า Default

อัปเดตค่า NULL ให้กลายเป็นค่า Default

รวม COALESCE() กับ UPDATE ... WHERE

ข้อมูลก่อน: Salary เป็น NULL สำหรับ ID 5, 6

+----+--------+--------+
| ID | Name   | Salary |
+----+--------+--------+
| 1  | Gaurav | 50000  |
| 2  | Rahul  | 20000  |
| 3  | Advik  | 25000  |
| 4  | Aarav  | 65000  |
| 5  | Ram    | NULL   |
| 6  | Mohan  | NULL   |
+----+--------+--------+

คำสั่ง UPDATE

UPDATE Employee SET Salary = COALESCE(Salary, 20000) WHERE Id = 5;
UPDATE Employee SET Salary = COALESCE(Salary, 30000) WHERE Id = 6;

ข้อมูลหลัง UPDATE

+----+--------+--------+
| ID | Name   | Salary |
+----+--------+--------+
| 1  | Gaurav | 50000  |
| 2  | Rahul  | 20000  |
| 3  | Advik  | 25000  |
| 4  | Aarav  | 65000  |
| 5  | Ram    | 20000  |
| 6  | Mohan  | 30000  |
+----+--------+--------+

การทำงาน

  • COALESCE(Salary, 20000): ถ้า Salary ไม่ใช่ NULL ใช้ค่าเดิม, ถ้า NULL ใช้ 20000
  • WHERE Id = 5: จำกัดเฉพาะแถวที่ต้องการ
  • ID 1-4: Salary มีค่าแล้ว → COALESCE คืนค่าเดิม → ไม่เปลี่ยนแปลง

ประโยชน์

  • อัปเดตเฉพาะ NULL ไม่ทับค่าที่มีอยู่
  • เขียนสั้นกว่า CASE WHEN
  • ทำได้ใน Statement เดียว