在 MySQL 中刪除重複行可以直接使用 SQL 完成,無需外部腳本。 一種方法涉及利用 UNIQUE 索引。 然而,需要注意的是,這種方法在 MySQL 5.7 及更高版本中已經過時了。
方法(MySQL 5.7 已棄用):
此方法使用ALTER IGNORE TABLE
新增唯一索引,有效刪除重複項。
ALTER
語句: 建立 ALTER IGNORE TABLE
語句以將 UNIQUE 索引新增至識別重複行的欄位。例如,在包含 id
、url
、title
、company
和 site_id
欄位的表中,指令為:<code class="language-sql">ALTER IGNORE TABLE your_table_name ADD UNIQUE INDEX idx_name (column1, column2, column3);</code>
IGNORE
關鍵字透過靜默丟棄現有重複項來處理任何錯誤。 說明:
UNIQUE 索引可確保指定的欄位僅包含唯一值。 使用 IGNORE
新增此索引會刪除預先存在的重複行。
替代方法(建議用於 MySQL 5.7):
對於 MySQL 5.7 及更高版本,建議使用更強大且受支援的方法。 這些通常涉及使用 DELETE
語句和子查詢來識別和刪除重複項。 這些方法更複雜,但提供更好的相容性和可靠性。 (需要根據所需的重複識別標準提供這些替代方法的具體範例。)
注意:
在執行任何修改資料的操作之前,請務必備份資料庫。 錯誤建構的 SQL 查詢可能會導致資料遺失。
以上是如何使用 SQL 查詢從 MySQL 表中刪除重複行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!