重複した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

推薦する

HTML テーブルタグチュートリアル (35): 列間属性 COLSPAN

複雑なテーブル構造では、一部のセルが垂直方向に複数のセルにまたがるため、列間属性 COLSPAN を...

シンプルな商品スクリーニング機能を実現するjs

この記事の例では、商品スクリーニング機能を実装するためのjsの具体的なコードを参考までに共有していま...

HTMLの表のtbodyは上下左右にスライドできます

テーブル ヘッダーが固定されている場合は、それを 2 つのテーブルに分割する必要があります。1 つの...

VMware Workstation Pro でサーバー仮想マシンを構築する (グラフィック チュートリアル)

私が使用している VMware Workstation Pro のバージョンは次のとおりです。 1....

MySQLの比較演算子正規表現マッチングREGEXPの使用の詳細な説明

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

Vue+Echart 棒グラフで疫病データ統計を実現

目次1. まずプロジェクトにechartsをインストールします2. echartsに縦棒グラフテンプ...

Xiaomi公式サイトの登録・ログイン機能を模倣するJavaScript

目次まずページレイアウトを構築する必要がありますJS関数1 JS関数2 JS関数3 JS関数4効果図...

MySQL でのログインを取り消す

コンセプト紹介: MySQL の redo ログにはトランザクションの動作が記録されることはご存じの...

CocosCreatorでリストを作成する方法

CocosCreator バージョン: 2.3.4 Cocos には List コンポーネントがない...

Element-ui NavMenuサブメニューを使用して再帰的に生成する場合のエラーの詳細な説明

ナビゲーションバーのサブメニューを再帰的に生成すると、メニューは正常に生成できるが、マウスをホバーす...

mysql 基本操作文コマンドの詳細な説明

1. MySQLに接続するフォーマット: mysql -h ホストアドレス -u ユーザー名 -p ...

MySQL でのサブクエリの基本的な使用法

目次1. サブクエリの定義2. サブクエリの分類1. スカラーサブクエリ: 2. MySQLサブクエ...

Web ページは何ピクセルで設計すればよいでしょうか?

多くのウェブデザイナーは、ウェブページのレイアウトを設計する際に、インターフェースウェブページの幅に...

MySQL フラッシュリストとダーティページフラッシュメカニズム

1. レビューMySQL の起動後にバッファ プールが初期化されます。バッファ プールは N 個の空...

CSS3のvar()を使用して実行時にscss変数の値を変更する詳細な説明

var() の紹介と使用法詳細 (MDN) IEは無効ですが、他の主流のブラウザは有効ですvar()...