Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để xóa một giá trị duy nhất khỏi bảng MySQL có các bản ghi trùng lặp?

Sử dụng DELETE để xóa các bản ghi, nhưng nếu bạn có nhiều bản ghi trùng lặp, thì hãy giới hạn việc xóa bằng cách sử dụng MySQL LIMIT như trong cú pháp bên dưới -

Cú pháp

delete from yourTableName where yourColumnName=yourValue limit 1;

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
   -> (
   -> Amount int
   -> );
Query OK, 0 rows affected (1.38 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable values(50);
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable values(100);
Query OK, 1 row affected (0.36 sec)
mysql> insert into DemoTable values(50);
Query OK, 1 row affected (0.59 sec)
mysql> insert into DemoTable values(70);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values(90);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(50);
Query OK, 1 row affected (0.23 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Điều này sẽ tạo ra kết quả sau -

+--------+
| Amount |
+--------+
|     50 |
|    100 |
|     50 |
|     70 |
|     90 |
|     50 |
+--------+
6 rows in set (0.00 sec)

Đây là truy vấn để xóa một giá trị duy nhất khỏi bảng -

mysql> delete from DemoTable where Amount=50 limit 1;
Query OK, 1 row affected (0.39 sec)

Hãy để chúng tôi kiểm tra các bản ghi bảng một lần nữa -

mysql> select *from DemoTable;

Điều này sẽ tạo ra kết quả sau -

+--------+
| Amount |
+--------+
|    100 |
|     50 |
|     70 |
|     90 |
|     50 |
+--------+
5 rows in set (0.00 sec)