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 サードパーティ ログインを実装するためのサンプル コード

推薦する

VPS はオフライン ダウンロード サーバーを構築します (ネットワーク ディスクの時代以降)

モチベーション学習の必要性から、海外のサーバーメーカー(どこのメーカーかは言いません)のVPSサービ...

Linux での Tomcat8 のインストールとアンインストールに関する詳細なグラフィック チュートリアル

[ Tomcat8 の Linux インストール ] Tomcat をアンインストールする - まず...

MySQL 8.0.17 winx64 (Navicat 付き) 手動構成バージョンのインストール チュートリアル図

1. ダウンロードアドレス: mysql-8.0.17-winx64ダウンロードして解凍する2. フ...

MySQL 5.7.21 解凍版のインストールと設定方法のグラフィックチュートリアル

私は頻繁にシステムをインストールするので、インストールのたびにいくつかのソフトウェアを再インストール...

Ubuntu 12.04 でカーネルツリーを構築する実装プロセスの詳細な説明

まず使用しているカーネルのバージョンを確認してくださいlin@lin-仮想マシン:~$ uname ...

ウェブページが自動的にデュアルコアブラウザの高速モードを呼び出すようにします(Webkit)

コードサンプルヘッドタグにコード行を追加します: XML/HTML コードコンテンツをクリップボード...

MySQLを水平から垂直に、垂直から水平に変換する方法

データの初期化 `test_01` が存在する場合はテーブルを削除します。 テーブル「test_01...

CSS 評価効果の星の例

何?何のスターコートですか?さて、もっとわかりやすくするために写真を見てみましょう。 よく見ると、パ...

Python3.6-MySql 挿入ファイルパス、バックスラッシュをなくす解決策

以下のように表示されます。上記のように、置き換えるだけです。 Python3.6-MySql でファ...

CentOS 環境で NFS リモート ディレクトリ マウントを使用する手順の紹介

目次1. NFS の概要2. NFS構築1. NFSサーバーの構築2. NFSクライアントの構築3....

MySQL 5.7.20 の解凍バージョンをインストールするための詳細な手順 (2 つの方法)

Windows 64ビットでのMySQLのインストールについて説明します。5.7以降、MySQLの...

Tomcat で server.xml と content.xml を変更した後の自動復元の問題の解決方法

設定ファイルを server.xml と content.xml に書き込みます。サーバーを再起動す...

MySQL MVCCメカニズム原理の詳細な説明

目次MVCCとはMySQL ロックとトランザクション分離レベルMySQL 元に戻すログMVCCの実装...

MySQL 5.7 のスロークエリログの時間がシステム時間より 8 時間遅れている理由の詳細な説明

遅いクエリをチェックすると、時間が正しくなく、システム時間とちょうど 8 時間異なっていることがわか...

JavaScript配列の組み込みメソッドの詳細な説明

目次1. Array.at() 2. Array.copyWithin() 3. 配列.entrie...