MySQL 對于刪除重復記錄提供了一個簡單的語句,這個語句使用了 DISTINCT 關鍵字,具體的語法如下:
DELETE FROM 表名 WHERE 列名 NOT IN (SELECT MAX(列名) FROM 表名 GROUP BY col1, col2, ...)
其中,表名表示要操作的表的名稱,列名表示要刪除重復記錄的一列名稱。
這個語句的意思是,在表中找到所有重復的記錄,并保留最后一個記錄,其他記錄都刪除。具體的實現原理是,使用 SELECT 子句查找每個分組的最大值,然后使用 WHERE 子句過濾掉最大值以外的記錄,最后使用 DELETE 子句刪除篩選出來的所有記錄。
現在我們來舉個例子。假設我們有一個名為 student 的表,其中有兩個字段分別是 id 和 name,我們要刪除重復的 name 記錄,可以使用以下語句:
DELETE FROM student WHERE name NOT IN (SELECT MAX(name) FROM student GROUP BY name);
執行這個語句之后,所有重復的 name 記錄都會被刪除,只保留最后一個記錄。
上一篇python 讀系統時間
下一篇python 讀文本 n