重複したMySQLレコードを現場でチェックし、処理する実践的な記録

重複したMySQLレコードを現場でチェックし、処理する実践的な記録

序文

私はソフトウェアの導入とデバッグのために顧客先に出張していました。ある日、顧客が突然私のところに来て、現場で生成されたデータに異常があると言いました。最も直接的な兆候は、複数の資料に同じラベルが表示されていたことです。問題を解決する方法を確認するために、私の協力が必要でした。

分析する

顧客は私の前に重複したラベルが付いた箱の山を置きました。私はとても怖くなり、大変なことになるのではないかと心配しました。

少し考えた後、今必要なのは、データベースで重複タグを照会すること、つまり、タグを数えて、count > 1 のタグを特定することです。

えーっと、文法エラーですね。「Having」があったのを覚えてます。代わりに試してみましょう

なんと、重複タグが 1,500 個以上あります。質問の総数を数えてグループ化し、重複タグの割合を確認してみましょう。

ちなみに、まずはこれらの重複ラベルデータを顧客に渡して製品を追跡します(幸いNavicatはデータのコピーをサポートしています)

データ合計

上記のクエリレコードの結果は一時テーブルです。これに基づいて、sum()を使用して合計を計算します。

重複したレコードが多数あり、これは少し大きな問題です。

繰り返し率

前のクエリテーブルのクエリ方法を変更し、カウントデータを再度グループ化します

結果から、問題データのほとんどは2回繰り返されました。

どこにあるかと持っているかの違い

where は、クエリ結果が返される前にデータベース内のクエリ条件を制約する制約ステートメントです。つまり、結果が返される前に有効になり、where の後に集計関数を使用することはできません。

はフィルタリングステートメントです。いわゆるフィルタリングは、データベースクエリの結果が返された後に実行されます。つまり、結果が返された後に有効になり、集約関数はhaving後に使用できます。

いわゆる集計関数は、sum---合計、count---カウント、max---最大値、avg---平均値など、一連の値を計算し、単一の値を返す関数です。

要約する

MySQLのクエリ操作では、通常、複数テーブル結合クエリを使用し、クエリ結果を複数のクエリの中間テーブルとして使用し、クエリ結果をグループ化し、統計集計などの操作を実行します。

クエリ操作で関数計算やグループ化が使用される場合、典型的な機能は元のテーブル内の複数のレコードを 1 つに結合することであり、これらの操作の結果をフィルター処理するには、が必須です。また、 where を使用して、テーブル レコードを条件付きでフィルター処理します。

これで、サイト上の重複した MySQL レコードのトラブルシューティングと処理に関するこの記事は終了です。重複した MySQL レコードのトラブルシューティングと処理の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL の重複データの処理方法 (防止と削除)
  • 重複データの処理に関するMySQL学習ノート
  • MySQLデータの同時更新を処理する方法
  • MySQLの実行原理、論理階層化、データベース処理エンジンの変更について詳しく説明します
  • MySQLが大量のデータを処理する際にクエリ速度を最適化するいくつかの方法
  • MySQLデータ処理のソートと追加、削除、変更の操作の説明

<<:  CSS3 弾性拡張ボックスの詳細な説明

>>:  シンプルなログインページを実装するための HTML+jQuery

推薦する

XHTML 入門チュートリアル: Web ページのヘッダーと DTD

ヘッドと DTD はページには表示されませんが、Web ページの重要な要素です。 なぜ失敗したのでし...

mysql5.7 のエンコーディングを utf8mb4 に設定する方法

最近、問題に遭遇しました。モバイル端末の絵文字や一部の絵文字は 4 バイトですが、UTF-8 は 3...

MySQLクエリのソートとページング関連

概要通常、データベース内のデータを直接表示することは望ましくないため、最後の 2 つのセクションでは...

コードを通じてHTMLエスケープ文字を識別する方法について説明します

データ内に次のような特徴を持つ「 ' 」などの文字が含まれることがあります。 &# ...

Vue Element UIの使用時に遭遇した問題をまとめる

目次1. DateTimePickerの日付選択範囲は現在時刻とそれ以前です2. DateTimeP...

MySQLでよく使われる文字列関数トップ10の詳細な説明

こんにちは、みんな!技術の話ばかりで髪は切らないトニーです。データベース関数は、何らかの機能を持ち、...

js キャンバスで円形の水のアニメーションを実現

この記事の例では、円形の水のアニメーションを実現するためのキャンバスの具体的なコードを参考までに共有...

C# は MySQL コマンドラインのバックアップとリカバリを実装します

MySQL データベースをバックアップするためのツールは多数あります。過去 2 日間で、C# を使用...

入力テキスト ボックスと画像検証コードの位置合わせの問題 (画像は常に入力より 1 つ上になります)

Web ページ制作では、input と img が同じ行に配置されることが多く、img タグが常に ...

MySQL の CPU 負荷が高い問題のトラブルシューティング

MySQL による CPU 負荷の上昇今日の午後、MySQL によってサーバーの負荷が高くなる問題を...

Nginx の場所と proxy_pass パスの設定の問題の概要

目次1. Nginxロケーションの基本設定1.1 Nginx 設定ファイル1.2 Pythonスクリ...

Centos8 (最小インストール) Python3.8+pip のインストール方法に関するチュートリアル

Python8のインストールを最小化した後、Python3.8.1をインストールしました。オンライン...

MySQL の効率的なクエリの左結合とグループ化 (プラス インデックス)

mysql 効率的なクエリMySQL は、左結合の速度を上げるために group by を犠牲にし...

MySQLのパスワードを忘れた場合の対処方法

MySQL パスワードを忘れた場合の解決策: [root@localhost ~]# mysql -...

RHEL8 /CentOS8 でマルチノード Elastic Stack クラスターを構築する方法

一般的に ELK スタックとして知られる Elastic スタックは、Elasticsearch、L...