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

อัปเดตทั้งแถว (Entire Row) ใน MySQL

การอัปเดตข้อมูลทั้งแถวด้วย UPDATE และ Primary Key

ใช้คำสั่ง UPDATE ระบุคอลัมน์ทั้งหมดที่ต้องการเปลี่ยน พร้อมเงื่อนไข WHERE บน Primary Key เพื่อระบุแถวที่ต้องการอัปเดต

ไวยากรณ์

UPDATE yourTableName 
SET column1 = 'value1', 
    column2 = 'value2', 
    column3 = 'value3',
    ...
WHERE primaryKeyColumn = primaryKeyValue;

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

สร้างตาราง:

CREATE TABLE UpdateEntireRowDemo (
    Id INT NOT NULL AUTO_INCREMENT,
    Name VARCHAR(20),
    Age INT,
    Marks INT,
    PRIMARY KEY(Id)
);

เพิ่มข้อมูล:

INSERT INTO UpdateEntireRowDemo(Name, Age, Marks) VALUES('Sam', 23, 78);
INSERT INTO UpdateEntireRowDemo(Name, Age, Marks) VALUES('Mike', 21, 99);
INSERT INTO UpdateEntireRowDemo(Name, Age, Marks) VALUES('Carol', 26, 80);
INSERT INTO UpdateEntireRowDemo(Name, Age, Marks) VALUES('John', 22, 71);
INSERT INTO UpdateEntireRowDemo(Name, Age, Marks) VALUES('Bob', 29, 89);
INSERT INTO UpdateEntireRowDemo(Name, Age, Marks) VALUES('David', 25, 68);
INSERT INTO UpdateEntireRowDemo(Name, Age, Marks) VALUES('Larry', 31, 91);

อัปเดตแถว Id = 5 (Bob -> James, Age 29 -> 19, Marks 89 -> 78):

UPDATE UpdateEntireRowDemo 
SET Name = 'James', Age = 19, Marks = 78 
WHERE Id = 5;

ตรวจสอบผลลัพธ์:

SELECT * FROM UpdateEntireRowDemo WHERE Id = 5;
+----+-------+------+-------+
| Id | Name  | Age  | Marks |
+----+-------+------+-------+
| 5  | James | 19   | 78    |
+----+-------+------+-------+

ข้อควรระวัง

  • ต้องมี WHERE - มิฉะนั้นจะอัปเดตทุกแถวในตาราง!
  • ใช้ Primary Key - เพื่อความแม่นยำและประสิทธิภาพ
  • คอลัมน์ที่ไม่ระบุใน SET จะคงค่าเดิม - ไม่ต้องระบุครบทุกคอลัมน์

การอัปเดตหลายแถวพร้อมกัน

-- อัปเดตหลาย Id พร้อมกัน
UPDATE UpdateEntireRowDemo 
SET Marks = Marks + 5 
WHERE Id IN (1, 2, 3);

การอัปเดตจากตารางอื่น (JOIN)

UPDATE target_table t
JOIN source_table s ON t.id = s.id
SET t.col1 = s.col1, t.col2 = s.col2
WHERE t.some_condition = 'value';