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 子句中。
此致
我需要通过查询从 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 子句中。
此致