在mysql中,我們有時候需要刪除重復的ID數據。一般情況下,刪除重復的ID數據可以通過以下幾個步驟來實現。
-- 假設表名為tableName,ID列名為ID
-- 首先查找重復ID的記錄,并將這些記錄刪除
DELETE a FROM tableName a, tableName b WHERE a.id = b.id AND a.rowid >b.rowid;
-- 之后再創建臨時表來存儲非重復的記錄,并將數據插入臨時表中
CREATE TABLE tableName_new LIKE tableName;
INSERT INTO tableName_new SELECT DISTINCT * FROM tableName;
-- 最后刪除原表,并將臨時表重命名為原表名稱
DROP TABLE tableName;
ALTER TABLE tableName_new RENAME TO tableName;
以上代碼中的第一個刪除語句通過自連接的方式找出表中ID相同但rowid不同的記錄,并將這些記錄刪除。第二個插入語句通過DISTINCT關鍵字來插入只有一個ID值的非重復記錄。而第三步刪除原表和重命名操作則將臨時表變成了我們需要的表。
下一篇mysql 刪除鏈接