在MySQL數據庫中,有時候會出現表中存在重復的記錄的情況,這就需要我們對表中的數據進行去重操作。
一個常見的例子就是在一個名為‘Student’的表中,某一列‘id’的值重復出現了多次:
id name age 1 Tom 20 2 Jack 18 3 Mike 22 1 Jim 19 2 Lucy 21
我們需要刪除這個表中重復的記錄,可以通過以下步驟實現:
1.首先,我們需要查詢出表中存在重復記錄的所有行,可以使用如下SQL語句:
SELECT id, COUNT(id) FROM Student GROUP BY id HAVING COUNT(id) >1;
代碼中,我們使用GROUP BY語句對id進行分組,然后通過COUNT函數統計每個id的行數,通過HAVING語句篩選出行數大于1的記錄,即為重復行。
2.然后,我們可以使用DELETE語句刪除這些重復的記錄,代碼如下:
DELETE FROM Student WHERE id IN(SELECT id FROM (SELECT id, ROW_NUMBER() OVER( PARTITION BY id ORDER BY id) AS rnum FROM Student ) t WHERE t.rnum >1);
刪除語句中,我們使用子查詢查詢出所有需要刪除的行的id,并通過DELETE語句進行刪除。
3.最后,我們再次查詢表中的所有數據,驗證重復數據是否已經被刪除了,代碼如下:
SELECT * FROM Student;
執行以上操作后,表中的重復記錄已經被成功刪除了。
上一篇python 請求上下文
下一篇c json的序列化