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

แทนที่ค่า NULL ทั้งหมดในคอลัมน์เฉพาะของ MySQL

การอัปเดตค่า NULL ให้เป็นค่าที่กำหนดด้วย UPDATE

ใช้คำสั่ง UPDATE ร่วมกับ IS NULL เพื่อเปลี่ยนค่า NULL ทั้งหมดในคอลัมน์เป็นค่าที่ต้องการ

ไวยากรณ์

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

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

สร้างตารางพนักงาน:

CREATE TABLE Employee_Information_Table (
    Id INT NOT NULL AUTO_INCREMENT,
    Name VARCHAR(20),
    Salary INT,
    PRIMARY KEY(Id)
);

เพิ่มข้อมูล (Salary ทั้งหมดเป็น NULL):

INSERT INTO Employee_Information_Table(Name, Salary) VALUES('John', NULL);
INSERT INTO Employee_Information_Table(Name, Salary) VALUES('Carol', NULL);
INSERT INTO Employee_Information_Table(Name, Salary) VALUES('Bob', NULL);
INSERT INTO Employee_Information_Table(Name, Salary) VALUES('David', NULL);
INSERT INTO Employee_Information_Table(Name, Salary) VALUES('Robert', NULL);
INSERT INTO Employee_Information_Table(Name, Salary) VALUES('Mike', NULL);
INSERT INTO Employee_Information_Table(Name, Salary) VALUES('Sam', NULL);

อัปเดต NULL เป็น 45,500:

UPDATE Employee_Information_Table 
SET Salary = 45500 
WHERE Salary IS NULL;

ผลลัพธ์ (7 rows affected):

+----+--------+--------+
| Id | Name   | Salary |
+----+--------+--------+
| 1  | John   | 45500  |
| 2  | Carol  | 45500  |
| 3  | Bob    | 45500  |
| 4  | David  | 45500  |
| 5  | Robert | 45500  |
| 6  | Mike   | 45500  |
| 7  | Sam    | 45500  |
+----+--------+--------+

ข้อควรระวัง

  • WHERE Salary IS NULL - ต้องใช้ IS NULL ไม่ใช่ = NULL
  • WHERE Salary = NULL - จะไม่ทำงาน เพราะ NULL = NULL เป็น UNKNOWN ใน SQL
  • ใช้ COALESCE() ใน SELECT หากต้องการแสดงค่าแทน NULL โดยไม่เปลี่ยนข้อมูลจริง

วิธีอื่น: ใช้ COALESCE ใน SELECT (ไม่เปลี่ยนข้อมูล)

SELECT Name, COALESCE(Salary, 45500) AS Salary FROM Employee_Information_Table;

จัดการ Empty String ('') พร้อมกับ NULL

UPDATE Employee_Information_Table 
SET Salary = 45500 
WHERE Salary IS NULL OR Salary = '';