Mysql - 如何消除多列重复(不重复)的行

Mysql - How to eliminate rows with several colums repeated (not duplicated)

我需要通过查询从 table 中删除一些行,其中 4 列都是相同的。例如,在 table people:

+----+------+-----+--------+
| id | name | age | weight |
+----+------+-----+--------+
|  1 | luis |  24 |     52 |
|  2 | luis |  24 |     75 |
|  3 | luis |  24 |     64 |
|  4 | ali  |  32 |     50 |
+----+------+-----+--------+

我只需要从 table 中删除一位名叫 'luis' 且年龄为“24”的人。我找到了几个删除重复项的解决方案,但在这种情况下 luis 24 出现了 3 次,我只想在 table 中保留 1 次。同名同龄1人

我试过了:

从人中删除 其中 id 不在 ( select min(id) 从人 按姓名、年龄分组 )

但这给了我这个错误:

您不能在 FROM 子句中为更新指定目标 table 'translation'

我正在使用 Mysql 数据库

DELETE FROM people
    WHERE people.id NOT IN (SELECT * 
       FROM (SELECT MIN(people.id)
           FROM people
           GROUP BY people.name, people.age) people)

这将删除多个重复的姓名和年龄,留下 ID 较低的记录。

您可以将其他列添加到 GROUP BY 子句中。

此致