關於 mysql 資料庫中 刪除重複資料
阿新 • • 發佈:2020-12-24
- 小問題大細節,參考文章 :
- 重點是第二個連結,第一個連結的思路是好的,但是第二的方法和總結更好。
- https://www.cnblogs.com/luyingfeng/p/5772262.html
- https://www.cnblogs.com/liyue-sqsf/p/9076902.html
表如下:
DELETE from S_score2 where id IN (
-- 這裡再加 一個 select 語句,因為
-- 警告:不能根據本表的查詢結果來更新本表的資料,所以給表起個別名
select * from (
SELECT id from S_score2
where
(姓名, 課程) in
(SELECT 姓名, 課程 FROM S_score2 GROUP BY 姓名, 課程 HAVING COUNT(*) > 1)
and
id not in (SELECT min(id) from S_score2 GROUP BY 姓名, 課程 HAVING count(*)> 1)
) as stu_score
);
總結:
這個問題看似簡單,想了 很多種解法,更想了很久~ 不多說了,大家仔細看那兩個連結,並且最好先以自己的思路去實現下。
結束。