無需外部腳本即可刪除MySQL中的重複行
在某些情況下,您可能需要根據特定列的組合刪除MySQL表中的重複行。以下探討如何僅使用SQL查詢來實現此目的,避免使用伺服器端腳本。
背景
如初始問題所述,該表包含多個列,包括'id'、'url'、'title'、'company'和'site_id'。目標是刪除那些'title'、'company'和'site_id'具有相同值的行。
解
刪除重複行的有效方法之一是使用這三列上的UNIQUE索引。建立此類索引的語法如下:
<code class="language-sql">ALTER IGNORE TABLE jobs ADD UNIQUE INDEX idx_name (site_id, title, company);</code>
請注意語句中使用了關鍵字'IGNORE'。這會告訴MySQL在建立索引時忽略重複行。這意味著這些重複行將從表中刪除。
額外好處
除了刪除現有重複行外,新增UNIQUE索引還可以防止將來插入重複行。任何嘗試插入已存在'site_id'、'title'和'company'組合的行都會導致錯誤。
注意:
請注意,此功能已在MySQL 5.7及更高版本中刪除。因此,此解決方案不再適用於這些MySQL版本。
以上是如何僅使用 SQL 查詢刪除 MySQL 中的重複行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!