I'm trying to figure out how I can delete duplicate rows from my database but keep one:
|---------------------------|
| 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
|---------------------------|
I've been able to figure out how to select the rows that have duplicate rows:
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
How can I modify this query so it deletes the duplicate rows, but keeps one?
I've looked on SO and Google for answers but none seem to work/fit my needs.