MySQL テーブル内の重複データを検索して削除する方法の概要

MySQL テーブル内の重複データを検索して削除する方法の概要

時々、データベース テーブルに重複したデータが大量に保存されます。これらの重複データはリソースを浪費します。削除したいのですが、どのように対処すればよいでしょうか。以下で見てみましょう。

まず、テーブルデータを見てみましょう。一部のデータは重複しています。

重複データを検索するには、図に示すように、MySQL の having ステートメントを使用できます。

このステートメントを実行すると、現在の結果にテーブル内の重複データを含むフィールドが表示されることがわかります。

これらの重複データを削除するには、これらのデータの ID を調べ、select ステートメントに id フィールドを追加し、max 関数を使用して重複データの最後の id を取得します。

実行結果は図の通りで、重複データの ID は 8 と 9 です。

このように、delete ステートメントを使用して、これら 2 つの ID のデータを削除できます。

しかし、重複データが多数あり、これらの ID を 1 つずつ書き込みたくない場合はどうすればよいでしょうか?

図に示すように、id フィールドのみをクエリするサブクエリを追加します。

次に、外側に delete ステートメントを追加するだけです。詳細なコードは図に示されています。

重複するデータが 3 行以上ある場合は、このステートメントを複数回実行する必要があることに注意してください。これは、1 回実行すると、重複するデータの各セットで 1 行のみが削除されるためです。

以下もご興味があるかもしれません:
  • MySQLで重複レコードを削除する方法
  • MySQL で重複レコードをクエリして削除する方法の完全なガイド
  • MySQLで重複データを見つけて削除し、1つの例だけを残す方法の詳細な説明
  • MySQLデータベース内の重複データを削除する方法の概要
  • MySQL クエリの重複データ (重複データを削除し、ID が最も小さいデータのみを保持します)
  • MySQL データベース内の重複レコードを削除する方法のまとめ [推奨]
  • MySQLテーブル内のフィールドの重複レコードを削除する
  • MySQL データベースを操作して重複データを削除するシェル スクリプト
  • MySQLで重複行を削除する方法
  • MySQLデータベースは重複データを削除し、メソッドインスタンスを1つだけ保持します

<<:  Dockerデータ管理とネットワーク通信の使用

>>:  Vue で Google サードパーティ ログインを実装するためのサンプル コード

推薦する

Dockerボリューム削除操作

プルーンこのコマンドを使用するには、クライアントとデーモンの両方の API バージョンが少なくとも ...

Web ページのエンコーディングで gbk や gb2312 ではなく utf-8 が使用されるのはなぜですか?

選択肢がある場合は、UTF-8を使用することをお勧めします。実際、Windows システム自体のプロ...

MySQLログシステムの使い方に関する簡単なチュートリアル

目次序文1. エラーログ2. バイナリログ1. バイナリログを有効にする2. バイナリログ形式3. ...

Linux で Spring Boot プロジェクトを開始および停止するためのスクリプトの例

Springboot プロジェクトを開始するには、次の 3 つの方法があります。 1. メインメソッ...

JavaScript WeakMap の使い方の詳しい説明

WeakMap オブジェクトは、キーが弱参照であるキー/値のペアのコレクションです。キーはオブジェク...

Python の MySQL データベース LIKE 演算子の詳細な説明

LIKE 演算子は、列内の指定されたパターンを検索するため、WHERE 句で使用されます。文法: 列...

MySQL SHOW STATUSステートメントの使用

MySQL のパフォーマンス調整とサービス ステータスの監視を行うには、MySQL の現在の実行状態...

Dockerがログファイルを保存する場所の詳細な説明

目次ログはどこに保存されますか?コンテナ内のアプリケーションからのログを表示するDockerデーモン...

Typescriptを使用してWeChatミニプログラムでプロジェクトを作成する方法

プロジェクトを作成するWeChat開発者ツールでプロジェクトを作成し、言語でTypeScriptを選...

HTMLコードテキストボックスの制限入力テキストボックスが灰色になり、制限テキストボックスの入力

方法 1: readonly 属性を true に設定します。入力値=読み取り専用 readOnly...

proxy_pass がパス パスに従って転送する場合の "/" 問題の詳細な説明

nginx で proxy_pass を設定するときに、^~ に従ってパスを一致させる場合は、pro...

MySQL ログの設定と表示方法

MySQL には次のログがあります。エラーログ: -log-errクエリログ: -logスロークエリ...

大規模な MySQL テーブルに対する count() の実装を最適化しました

以下は、B+ ツリーのデータ構造と実験結果からの推測に基づいた私の判断です。間違いがあればご指摘くだ...

CSS でショートカット プロパティを記述する際は、トラブルの順序に注意してください (落とし穴を避けるため)

ショートハンドプロパティは、複数のプロパティに同時に値を割り当てるために使用されます。たとえば、fo...

JavaScriptを使用してSMS認証コード間隔を送信する機能を実装する

多くのアプリやウェブサイトでは、ログインやアカウント登録の際にSMS認証コード1を送信する場所があり...