Sử dụng DELETE ... WHERE column > value để xóa các hàng vượt quá ngưỡng cho trước.
Tạo bảng điểm người chơi
mysql> CREATE TABLE DemoTable(
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
PlayerName VARCHAR(100),
PlayerScore INT
);
Query OK, 0 rows affected (0.97 sec)
mysql> INSERT INTO DemoTable(PlayerName, PlayerScore) VALUES
('Chris',780), ('Sam',1100), ('Mike',900), ('Bob',890), ('Carol',1000);
Query OK, 5 rows affected
Xóa người chơi có điểm > 900
mysql> DELETE FROM DemoTable WHERE PlayerScore > 900; Query OK, 2 rows affected (0.18 sec)
Kết quả (còn lại ≤ 900):
+----+------------+-------------+ | Id | PlayerName | PlayerScore | +----+------------+-------------+ | 1 | Chris | 780 | | 3 | Mike | 900 | | 4 | Bob | 890 | +----+------------+-------------+
Lưu ý:
DELETEkhông thể hoàn tác (trừ khi trong transaction chưa commit)- Cân nhắc
SELECT * FROM DemoTable WHERE PlayerScore > 900trước để xem trước - Với bảng lớn, xóa theo batch (LIMIT 1000) để tránh lock table lâu