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

推薦する

海外のウェブページのカラーマッチング事例20選共有

この記事では、優れた Web ページのカラー マッチングの事例を 20 件集めて紹介します。これらの...

Linux 圧縮ファイルコマンド zip の使用例

「.zip」形式は、Windows システムでファイルを圧縮するために使用されます。実際、「.zip...

古い Vue プロジェクトに Vite サポートを追加する方法

1. はじめに会社のプロジェクトを引き継いで2年になります。今では毎回プロジェクトを起動するのに1分...

MySQL Truncate の使用方法の詳細な説明

目次MySQL 切り捨ての使用1. 構文を切り捨てる2. Truncateの使用上の注意3. TRU...

ウェブフロントエンドウェブ開発の一般的なプロセスの簡単な紹介

フロントエンド開発を行っている初心者の学生を多く見かけますが、彼らの効率は比較的遅いです。常にコード...

MySQL に接続する際に Navicat for MySQL が 2005 エラーを報告する問題を解決する

前回の記事では、Navicat for Mysql 接続エラー 1251 (接続失敗) の問題を解決...

HTMLがHikvisionカメラのリアルタイム監視機能を実現

最近、同社は CCFA 関連のいくつかの作業を行う予定で、その 1 つはカメラのリアルタイム監視を再...

CSS ボックスモデル内のパディングと略語の詳細な説明

上図のように、パディング値は時計回り(右上、右下)の複合属性であり、パディングの内側の余白がボックス...

JSはリクエストディスパッチャーを実装する

目次抽象化と再利用シリアルセグメントシリアル、セグメントパラレル要約するはじめに: JS は当然並列...

Linux で大きなファイルの指定された内容を見つける方法

大きなことも小さなことも考えて、方向転換しましょう。 Linux では非常に大きなファイルに遭遇する...

Ubuntu 18.04の下のディレクトリにディスクをマウントします

導入この記事では、Ubuntu 18.04 デスクトップ システムでディスクを目的のディレクトリにマ...

(MariaDB) MySQL のデータ型とストレージメカニズムの包括的な説明

1.1 データ型の概要データ型は、各フィールドに保存できるデータの種類、保存できるデータの量、保存で...

MySQL 8.0.18 のインストールと設定のグラフィックチュートリアル

学習目標: Windowsシステムを使用してMySQLデータベースをインストールする方法を学びます。...

Dockerはクロスプラットフォーム機能を実現するためにnet5プログラムを導入

展開環境: ここでは docker コンテナ、Linux システム、VmWare 仮想マシンが使用さ...

Linux ncコマンドの概要

NC のフルネームは Netcat (Network Knife) で、作成者は Hobbit &a...