可能重复:
SQL - How can I remove duplicate rows?
Deleting duplicate rows from a table
这是我的案例
我有一个名为result的表,看起来像这样
Id Valeur IdUtilisateur Date IdUnit IdMea IdAnalyte
1 0.440 patlach01 2012-01-02 2 39258 2541
2 0.440 patlach01 2012-01-02 2 39258 2541
3 0.440 patlach01 2012-01-02 2 39258 2541
如您所见,我有类似的行但id
不同(标识设置为是,因此id
增加自动)
我想删除不需要的行,但只保留1个样本
其他表格 IdUnit
,IdMea
,IdAnalyte
为fk
我该怎么做?
我想为所有其他案例做出来(是的,bd是乱七八糟的,很多重复)所以我想成为“通用”并在1次操作中完成工作(如果可能的话)
对不起,如果我不够清楚,这是我在这里的第一篇文章!!!!
答案 0 :(得分:2)
在 MYSQL 中,您可以这样使用:
DELETE a FROM table a, table b
WHERE a.id > b.id
AND a.IdUtilisateur = b.IdUtilisateur
OR
DELETE FROM table
WHERE id NOT IN
(SELECT * FROM (SELECT MIN(a.id) FROM table a
GROUP BY a.IdUtilisateur) b)
注意: 表是您表格的名称。
希望这有帮助。
答案 1 :(得分:1)
DELETE FROM Table
WHERE ID NOT IN
(SELECT A.RowId FROM
(SELECT Id,MAX(ID) AS RowId
FROM Table
GROUP BY ID
) A
);
假设这是MYSQL,我给出了解决方案。
P.S:where子句中的ID是我们在MYSQL中使用的ROWID。