ใช้ 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';