Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Xóa hàng trong MySQL với DELETE WHERE

Câu lệnh DELETE FROM table WHERE condition xóa các hàng thỏa mãn điều kiện. Luôn dùng WHERE trừ khi muốn xóa toàn bảng.

Tạo bảng khách hàng có khóa chính

mysql> CREATE TABLE DemoTable (
    -> CustomerId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> CustomerName VARCHAR(100),
    -> CustomerAge INT
    -> );
Query OK, 0 rows affected (1.30 sec)
mysql> INSERT INTO DemoTable(CustomerName, CustomerAge) VALUES('John', 33), ('Bob', 25), ('David', 28), ('Carol', 29);
Query OK, 4 rows affected (0.10 sec)

Xóa hàng David 28 tuổi

mysql> DELETE FROM DemoTable WHERE CustomerName = 'David' AND CustomerAge = 28;
Query OK, 1 row affected (0.23 sec)

Kết quả còn lại:

+------------+--------------+-------------+
| CustomerId | CustomerName | CustomerAge |
+------------+--------------+-------------+
| 1          | John         | 33          |
| 2          | Bob          | 25          |
| 4          | Carol        | 29          |
+------------+--------------+-------------+
3 rows in set (0.00 sec)

Cảnh báo:

  • Không có WHERE → xóa toàn bộ bảng
  • Không thể hoàn tác (trừ khi trong transaction chưa commit)
  • Nên SELECT trước để xác nhận
  • Xóa nhiều bảng: DELETE t1, t2 FROM t1 JOIN t2 ... WHERE ...