ホームページ > データベース > mysql チュートリアル > 外部スクリプトを使用せずに MySQL の重複行を削除するにはどうすればよいですか?

外部スクリプトを使用せずに MySQL の重複行を削除するにはどうすればよいですか?

DDD
リリース: 2025-01-24 02:09:09
オリジナル
412 人が閲覧しました

How Can I Remove Duplicate Rows in MySQL Without Using External Scripts?

MySQL での重複行の削除: データベースのみのアプローチ

このガイドでは、外部スクリプトに依存せずに、特定の列 (site_idtitlecompany など) に基づいて 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート