乐闻世界logo
搜索文章和话题

How to delete a certain row from mysql table with same column values?

1个答案

1

In MySQL, if you need to delete rows with identical column values, first identify which columns contain duplicate values and the conditions under which deletion should occur. Here, I will provide two common scenarios along with their respective SQL commands.

Scenario 1: Delete all duplicate rows with identical column values, keeping only one

Assume we have a table named Employees with multiple columns, one of which is named EmployeeID. We want to delete all rows with the same EmployeeID except for the one with the smallest ID.

We can use the following SQL command:

sql
DELETE e1 FROM Employees e1 JOIN Employees e2 WHERE e1.id > e2.id AND e1.EmployeeID = e2.EmployeeID;

The logic of this command is as follows:

  • We select two instances of the Employees table, aliased as e1 and e2.
  • In the WHERE clause, we set conditions where e1.id is greater than e2.id (ensuring that for each EmployeeID, only the smallest id is retained), and their EmployeeID values match.

Scenario 2: Delete rows with identical column values based on specific conditions

Assuming we still use the same Employees table, we now need to delete all rows where EmployeeID is a specific value (e.g., '12345') and Status is 'Inactive'.

We can use the following command:

sql
DELETE FROM Employees WHERE EmployeeID = '12345' AND Status = 'Inactive';

This command is straightforward; it deletes all rows where EmployeeID is '12345' and Status is 'Inactive'.

Through these examples, you can see how to delete rows in MySQL based on specific conditions or duplicate values. When performing such operations, it is recommended to first use a SELECT statement to verify which rows will be deleted to avoid accidental deletion of critical data.

2024年8月7日 00:29 回复

你的答案