1.查询多条重复的数据
SELECT
*
FROM
app_store.app_file
WHERE
app_id IN (
SELECT
app_id
FROM
app_store.app_file
GROUP BY
app_id
HAVING
count(app_id) > 1
)
2.删除多条重复数据,只保留一条
网上最多的一种写法:
delete from app_store.app_file
where app_id in (select app_id from app_store.app_file group by app_id having count(app_id) > 1)
and id not in (select min(id) from app_store.app_file group by app_id having count(app_id)>1)
会报错:You can’t specify target table ‘app_file’ for update in FROM clause
修改后:
DELETE FROM app_store.app_file
WHERE app_id IN (SELECT * FROM (SELECT app_id FROM app_store.app_file GROUP BY app_id HAVING COUNT(app_id) > 1) t1)
AND id NOT IN (SELECT * FROM(SELECT MIN(id) FROM app_store.app_file
GROUP BY app_id
HAVING COUNT(app_id) > 1) t2)