【发布时间】:2020-04-22 17:40:12
【问题描述】:
我正试图弄清楚如何从我的数据库中删除重复的行但保留一个:
|---------------------------|
| id titleid version |
|---------------------------|
| 1 TEST1 1.60 | <--- keep
| 2 TEST1 1.60 | <--- delete
| 3 TEST1 1.60 | <--- delete
| 4 TEST1 1.60 | <--- delete
| 5 TEST55 1.55 | <--- not selected
| 6 TEST88 1.85 | <--- not selected
| 7 TEST56 1.60 | <--- keep
| 8 TEST56 1.60 | <--- delete
|---------------------------|
我已经能够弄清楚如何选择具有重复行的行:
SELECT a.*
FROM patch a
JOIN (
SELECT titleid, version, COUNT(*)
FROM patch
GROUP BY titleid, version
HAVING count(*) > 1
) b
ON a.titleid = b.titleid
AND a.version = b.version
ORDER BY a.version
如何修改此查询,使其删除重复的行,但保留一个?
我已经在 SO 和 Google 上寻找答案,但似乎没有一个能满足我的需求。
【问题讨论】: