我需要使用查询删除表中的一些行,其中4列都是相同的。例如,在表people
中:
+----+------+-----+--------+ | id | name | age | weight | +----+------+-----+--------+ | 1 | luis | 24 | 52 | | 2 | luis | 24 | 75 | | 3 | luis | 24 | 64 | | 4 | ali | 32 | 50 | +----+------+-----+--------+
我需要从表格中删除一个名为“luis”的人。随着年龄的增长' 24'我找到了几个删除重复项的解决方案,但在这种情况下,luis 24出现了3次,我只想在表中保留1。一个名字和年龄相同的人。
我试过了:
从人群中删除 其中id不在(选择min(id)) 来自人民 按名称分组,年龄 )
但是这给了我这个错误:
您无法指定目标表格'翻译'用于FROM子句中的更新
我正在使用Mysql数据库
答案 0 :(得分:0)
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子句中。
此致