MySQL で重複レコードをクエリして削除する方法の完全なガイド

MySQL で重複レコードをクエリして削除する方法の完全なガイド

序文

この記事では主に、MySQL で重複レコードをクエリして削除する方法を紹介します。参考と学習のために共有します。詳細な紹介を見てみましょう。

重複するタイトルを持つすべてのレコードを検索します。

user_table から title,count(*) を count として選択し、count>1 を持つ title でグループ化します。
SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC

1. 重複レコードを見つける

1. 重複レコードをすべて検索する

SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC

2. 重複レコードをフィルタリングする(1つだけ表示される)

ID が含まれた HZT から * を選択 (タイトル別に HZT グループから最大 (ID) を選択)

注: これはIDが最も大きいレコードを表示します

2.重複レコードを削除する

1. 重複レコードをすべて削除します(注意して使用してください

繰り返しフィールドがあるテーブルを削除します (テーブルから繰り返しフィールドを選択します。繰り返しフィールドでグループ化します。カウント(*)>1 を持つ)

2. 1 つ保持します (ほとんどの人はこれが必要です^_^)

ID が含まれない HZT を削除します (タイトル別に HZT グループから最大 (ID) を選択)

注:最も大きなIDを持つレコードがここに保持されます

3. 例

1. テーブル内の重複レコードを検索します。重複レコードは単一のフィールド (peopleId) に基づいて決定されます。

peopleId が in である people から * を選択します (count(peopleId) > 1 を持つ peopleId で people グループから peopleId を選択)

2. テーブル内の冗長な重複レコードを削除します。重複レコードは、単一のフィールド (peopleId) に基づいて決定されます。最小の rowid を持つレコードのみが保持されます。

peopleId が (count(peopleId) > 1 を持つ peopleId で people グループから peopleId を選択) かつ rowid が (count(peopleId) > 1 を持つ peopleId で people グループから min(rowid) を選択) ではない people から削除します。

3. テーブル内の重複レコードを検索する(複数のフィールド)

履歴書 a から * を選択します。ここで (a.peopleId、a.seq) です (履歴書から peopleId、seq を選択し、count(*) > 1 である peopleId、seq でグループ化します)

4. テーブル内の重複レコード(複数のフィールド)を削除し、最小のROWIDを持つレコードのみを残します。

履歴書 a から、(a.peopleId、a.seq) が (select peopleId、seq from vitae group by peopleId、seq having count(*) > 1) に含まれ、rowid が (select min(rowid) from vitae group by peopleId、seq having count(*)>1) に含まれない場所を削除します。

5. テーブル内の重複レコード(複数のフィールド)を検索し、最小のROWIDを持つレコードを除外する

vitae a から * を選択します。ここで、(a.peopleId、a.seq) は (select peopleId、seq from vitae group by peopleId、seq having count(*) > 1) に含まれ、rowid は (select min(rowid) from vitae group by peopleId、seq having count(*)>1) に含まれません。

4. 補足

重複レコードが 2 つ以上あります。1 つは完全に重複したレコード、つまりすべてのフィールドが重複しているレコードです。もう 1 つは、一部のキー フィールドが重複しているレコードです。たとえば、名前フィールドが重複していますが、他のフィールドは重複していないか、重複していても無視できます。

1. 最初のタイプの繰り返しは、解決が簡単です。

テーブル名から別の*を選択

重複レコードのない結果セットを取得できます。

テーブルから重複レコードを削除する必要がある場合 (重複レコードを 1 つだけ保持する場合)、次のように削除できます。

tableName から #Tmp に distinct * を選択
テーブルテーブル名を削除します
#Tmp から tableName に * を選択
テーブル #Tmp を削除します

この重複はテーブルの設計が不適切であるために発生し、一意のインデックス列を追加することで解決できます。

2. このタイプの重複問題では、通常、重複レコードの最初のレコードを保持する必要があります。操作方法は次のとおりです。

Name と Address という名前の繰り返しフィールドがあり、これら 2 つのフィールドに対して一意の結果セットを取得したいとします。

autoID として identity(int,1,1) を選択し、* を #Tmp に tableName から入力します。
名前、自動ID で #Tmp グループから min(自動ID) を自動 ID として #Tmp2 に選択します。
#Tmp から * を選択し、autoID が in であることを確認します (#tmp2 から autoID を選択)

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただき、ありがとうございます。

以下もご興味があるかもしれません:
  • MySQL で複数のデータをランダムにクエリする方法
  • MySQLテーブル内の重複データをクエリする方法
  • 行から行へのMySQLクエリステートメント
  • MySQLクエリ連続記録方式

<<:  Nest.js パラメータ検証とカスタム戻りデータ形式の詳細な説明

>>:  Linuxにgitをインストールする方法

推薦する

VS2019 が mysql8.0 データベースに接続する方法 (画像とテキスト付き)

1. まず、VS2019とMySQLデータベースを準備します。どちらも公式サイトからダウンロードで...

Vue はスクロール可能なポップアップウィンドウ効果を実装します

この記事では、スクロール可能なポップアップウィンドウ効果を実現するためのVueの具体的なコードを参考...

Vue3 非同期データ読み込みコンポーネントサスペンスの使い方

目次序文コンポーネントの作成要約する序文Vue3 には多くの注目すべき機能が追加されましたが、サスペ...

ドラッグ可能で編集可能なガントチャートの詳細な説明(HighchartsはVueとReactで使用できます)

序文Excel は強力で、広く使用されています。 Web アプリケーションの登場と改善に伴い、ユーザ...

ウェブデザインにおけるポップアップウィンドウとフローティングレイヤーのデザイン

従来のソフトウェアから Web ウェアへの段階的な移行の傾向の中で、デザイン パターンとテクノロジは...

MySQLデータベースのbinlogクリーンアップコマンドの詳細な説明

概要今日は主に、MySQL データベースから binlog ログを正しく削除する方法を紹介します。ロ...

角度コンテンツ投影の詳細な説明

目次単一コンテンツ投影マルチコンテンツ投影単一条件のコンテンツ投影アプリ-人物-htmlアプリ担当者...

WeChatアプレットの手動および自動追跡の実装の詳細説明(Taro)

どの企業もユーザーベースを拡大したいのであれば、ユーザーの操作データを収集・分析する必要があり、その...

WeChatアプレットはユーザーログインモジュールサーバーの構築を実装します

サーバーの構築には node.js を選択しました。まだインストールしていない方は、私の他の nod...

MySQLユーザー権限テーブルについての簡単な説明

MySQL はインストール時に自動的に mysql という名前のデータベースを作成します。mysql...

この記事では、MySQLのマスタースレーブ同期の原理を説明します。

目次MySQL マスタースレーブ同期原理の簡単な分析1. マスタースレーブとは何ですか? 2. 主従...

Linux での NVIDIA GPU 使用状況の監視の詳細な説明

TensorFlow をディープラーニングに使うとビデオメモリ不足がよく起こるので、GPU 使用状況...

Tomcat でサーブレット URL パターンを構成する際の問題の詳細な説明

tomcat の web.xml を構成する場合、サーブレットは比較的重要な問題です。ここでは、サー...

Centos7でglibcをアップグレードするとシステム異常(起動できない)になる場合の解決方法

目次問題の原因:解決:解決:私は Centos7 を使用しています (理論的にはこの方法は Cent...

VSCode+CMake+Clang+GCC 環境構築チュートリアル (Win10 の場合)

大学院入試に備えて、C/C++ を使って基本的なデータ構造とアルゴリズムを実装する予定です。アルゴリ...