本指南示範如何根據特定列(例如,site_id
、title
、company
)有效地從 MySQL 表中刪除重複行,而無需依賴外部腳本。 雖然 GROUP BY
可以識別重複項,但它需要單獨的刪除過程。更直接的方法是利用 MySQL 的 UNIQUE
索引功能。
UNIQUE
索引方法(已棄用)
以前,使用 UNIQUE
關鍵字新增 IGNORE
索引提供了一個解決方案。 MySQL 在建立索引期間會自動拒絕重複行。 語法為:
<code class="language-sql">ALTER IGNORE TABLE jobs ADD UNIQUE INDEX idx_name (site_id, title, company);</code>
重要提示: 這種 ALTER IGNORE TABLE
方法在 MySQL 5.6 中已棄用,並在 MySQL 5.7 及更高版本中完全刪除。 因此,此方法對於目前的 MySQL 安裝並不可靠。
(現代 MySQL 版本所需的替代方法) 要刪除較新 MySQL 版本中的重複項,需要使用 ROW_NUMBER()
的多步驟方法。 這將需要更複雜的查詢,但它仍然是僅資料庫的解決方案。 有關此替代方法的更多說明可在其他資源中找到。
以上是如何在不使用外部腳本的情況下刪除 MySQL 中的重複行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!