SQL クエリのみを使用して MySQL で重複行を削除する方法
Jan 24, 2025 am 02:15 AM外部スクリプトを使用せずに MySQL の重複行を削除します
場合によっては、特定の列の組み合わせに基づいて、MySQL テーブル内の重複行を削除する必要がある場合があります。以下では、サーバー側のスクリプトを回避し、SQL クエリのみを使用してこれを実現する方法を説明します。
背景
最初の質問で述べたように、テーブルには「id」、「url」、「title」、「company」、「site_id」などの複数の列が含まれています。目標は、「title」、「company」、および「site_id」が同じ値を持つ行を削除することです。
解決策
重複行を削除する効果的な方法は、これら 3 つの列に対して UNIQUE インデックスを使用することです。このようなインデックスを作成するための構文は次のとおりです:
ALTER IGNORE TABLE jobs ADD UNIQUE INDEX idx_name (site_id, title, company);
ステートメントではキーワード「IGNORE」が使用されていることに注意してください。これにより、インデックスの作成時に重複行を無視するように MySQL に指示されます。これは、これらの重複行がテーブルから削除されることを意味します。
追加特典
既存の重複行を削除するだけでなく、UNIQUE インデックスを追加すると、今後重複行が挿入されなくなります。 「site_id」、「title」、「company」の組み合わせがすでに存在する行を挿入しようとすると、エラーが発生します。
注:
この機能は MySQL 5.7 以降では削除されていることに注意してください。したがって、このソリューションはこれらの MySQL バージョンでは動作しなくなりました。
以上がSQL クエリのみを使用して MySQL で重複行を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか?

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?
