首頁 資料庫 mysql教程 如何僅使用 SQL 有效率地刪除 MySQL 中的重複行?

如何僅使用 SQL 有效率地刪除 MySQL 中的重複行?

Jan 24, 2025 am 02:01 AM

How Can I Efficiently Remove Duplicate Rows in MySQL Using Only SQL?

使用 SQL 消除 MySQL 中的重複行

MySQL 資料庫中的重複行可能會導致資料不一致和效能問題。本文重點在於基於「site_id」、「title」和「company」列從表格(例如「jobs」)中刪除重複行。

雖然複雜的 SQL 查詢可以辨識重複項,但更有效的方法是利用 MySQL 的索引功能。 這涉及建立一個唯一索引,它會自動處理重複行刪除。

唯一索引方法(已棄用)

以前,一個簡單的解決方案涉及使用帶有 ALTER IGNORE TABLE 索引的 UNIQUE 語句:

ALTER IGNORE TABLE jobs ADD UNIQUE INDEX idx_name (site_id, title, company);
登入後複製

此方法在索引建立期間自動刪除重複行。 然而,這種方法在 MySQL 5.6 中已被棄用,並在更高版本中被刪除。

優點(對於較舊的 MySQL 版本):

  • 簡單性:不需要單獨的刪除語句。
  • 自動化:防止將來重複插入。
  • 效能改進:唯一索引提高資料擷取速度。

現代 MySQL 解決方案(5.7 及更高版本):

對於 MySQL 5.7 及更高版本,不再支援 ALTER IGNORE TABLE 方法。 相反,使用帶有子查詢的 DELETE 語句來刪除重複項。 這需要更複雜的方法,但請確保與目前 MySQL 版本的兼容性。 典型的解決方案涉及使用 GROUP BY 子句和 HAVING 子句來識別重複項以過濾大於 1 的計數,然後根據特定條件刪除多餘的行(例如,保留 ID 最低的行)。 確切的查詢取決於您的特定需求和表格結構。 有關此方法的詳細範例,請參閱 MySQL 文件。

以上是如何僅使用 SQL 有效率地刪除 MySQL 中的重複行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

減少在Docker中使用MySQL內存的使用 減少在Docker中使用MySQL內存的使用 Mar 04, 2025 pm 03:52 PM

減少在Docker中使用MySQL內存的使用

如何使用Alter Table語句在MySQL中更改表? 如何使用Alter Table語句在MySQL中更改表? Mar 19, 2025 pm 03:51 PM

如何使用Alter Table語句在MySQL中更改表?

mysql無法打開共享庫怎麼解決 mysql無法打開共享庫怎麼解決 Mar 04, 2025 pm 04:01 PM

mysql無法打開共享庫怎麼解決

什麼是 SQLite?全面概述 什麼是 SQLite?全面概述 Mar 04, 2025 pm 03:55 PM

什麼是 SQLite?全面概述

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器) 在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器) Mar 04, 2025 pm 03:54 PM

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)

在MacOS上運行多個MySQL版本:逐步指南 在MacOS上運行多個MySQL版本:逐步指南 Mar 04, 2025 pm 03:49 PM

在MacOS上運行多個MySQL版本:逐步指南

如何保護MySQL免受常見漏洞(SQL注入,蠻力攻擊)? 如何保護MySQL免受常見漏洞(SQL注入,蠻力攻擊)? Mar 18, 2025 pm 12:00 PM

如何保護MySQL免受常見漏洞(SQL注入,蠻力攻擊)?

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼? 哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼? Mar 21, 2025 pm 06:28 PM

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼?

See all articles