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

วิธีตั้งค่าคอลัมน์ทั้งหมดเป็น 0 ใน MySQL

ใช้ UPDATE SET column = 0 โดยไม่มี WHERE

คำสั่ง UPDATE table SET column = 0; จะตั้งค่าคอลัมน์นั้นเป็น 0 ทุกแถวในตาราง

ตัวอย่างสร้างตารางและข้อมูล

CREATE TABLE DemoTable (Number INT);
INSERT INTO DemoTable VALUES (10), (4757), (48474), (35465);

ข้อมูลก่อนอัปเดต

+--------+
| Number |
+--------+
| 10     |
| 4757   |
| 48474  |
| 35465  |
+--------+

คำสั่งตั้งค่าทุกแถวเป็น 0

UPDATE DemoTable SET Number = 0;

ข้อมูลหลังอัปเดต

+--------+
| Number |
+--------+
| 0      |
| 0      |
| 0      |
| 0      |
+--------+

คำอธิบาย: ไม่มี WHERE → ใช้กับทุกแถว

⚠ ข้อควรระวังอย่างสำคัญ:

  • ไม่มี WHERE = อัปเดตทุกแถว ต้องระมัดระวังมาก
  • ควรทดสอบด้วย SELECT * FROM DemoTable WHERE Number != 0; ก่อน
  • ใช้ Transaction: START TRANSACTION; UPDATE ...; -- ตรวจสอบ -- COMMIT;/ROLLBACK;
  • หากตารางใหญ่ อาจ Lock นาน ใช้ LIMIT แบ่ง Batch: UPDATE DemoTable SET Number = 0 WHERE Number != 0 LIMIT 1000; วนลูปจน ROW_COUNT() = 0
  • TRUNCATE TABLE เร็วกว่าแต่จะ Reset AUTO_INCREMENT และไม่สามารถ Rollback ได้

กรณีหลายคอลัมน์: UPDATE DemoTable SET col1 = 0, col2 = 0, col3 = 'default';