本指南演示了如何根据特定列(例如,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中文网其他相关文章!