MySQLデータの重複チェックと重複排除の実装ステートメント

MySQLデータの重複チェックと重複排除の実装ステートメント

テーブル user があり、フィールドは id、nick_name、password、email、phone です。

1. 単一フィールド(ニックネーム)

重複レコードを含むすべてのレコードを検索

select * from user where nick_name in (count(nick_name)>1 を持つ nick_name で user グループから nick_name を選択します);

重複レコードがある各レコードグループ内で最大のIDを持つレコードを検索します。

select * from user where id in (select max(id) from user group by nick_name having count(nick_name)>1);

最小のIDを持つレコードではなく、冗長なレコードを見つけます

select * from user where nick_name in (select nick_name from user group by nick_name having count(nick_name)>1) and id not in (select min(id) from user group by nick_name having count(nick_name)>1);

冗長な重複レコードを削除し、最小のIDを持つレコードのみを保持します。

nick_name が (select nick_name from (select nick_name from user group by nick_name having count(nick_name)>1) as tmp1) に含まれ、id が (select id from (select min(id) from user group by nick_name having count(nick_name)>1) as tmp2) に含まれないユーザーから削除します。

2. 複数のフィールド(ニックネーム、パスワード)

重複レコードを含むすべてのレコードを検索

select * from user where (nick_name,password) in (select nick_name,password from user group by nick_name,password where having count(nick_name)>1);
 

重複レコードがある各レコードグループ内で最大のIDを持つレコードを検索します。

select * from user where id in (select max(id) from user group by nick_name,password where having count(nick_name)>1);

各重複レコード グループ内の冗長レコードを検索しますが、最小の ID を持つレコードは検索しません。

(nick_name,password) が (select nick_name,password from user group by nick_name,password having count(nick_name)>1) かつ id が (select min(id) from user group by nick_name,password having count(nick_name)>1) に含まれないユーザーから * を選択します。

冗長な重複レコードを削除し、最小のIDを持つレコードのみを保持します。

(nick_name、password) が (select nick_name、password from (select nick_name、password from user group by nick_name、password having count(nick_name)>1) as tmp1) 内にあり、id が (select id from (select min(id) id from user group by nick_name、password having count(nick_name)>1) as tmp2) 内にないユーザーから削除します。

上記は、MySQL データの重複チェックと重複排除の実装ステートメントの詳細な内容です。MySQL データの重複チェックと重複排除の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySQL 開発スキル: JOIN 更新とデータ重複チェック/重複排除
  • 1つのSQL文でMySQLの重複排除が完了し、1つが保持されます。
  • MySQLの重複排除方法
  • SQL データベースにおける重複排除についての簡単な説明
  • 重複を削除するSQLグループ化と並べ替えの小さな例
  • MySQL における重複排除の 2 つの方法とサンプル コードの詳細な説明
  • 重複SQLのチェックと削除方法の実践記録

<<:  Linux resolv.conf の簡単な分析

>>:  Linuxファイルコマンドの使用

推薦する

Linux で同じ内容のファイルを識別する方法の詳細な説明

序文ファイルのコピーによってハードドライブのスペースが大量に浪費され、ファイルを更新するときに混乱が...

Linux カーネル デバイス ドライバー Linux カーネル 基本メモの概要

1. Linuxカーネルドライバモジュールの仕組み静的ロードでは、ドライバモジュールをカーネルにコン...

vue+elementuiは、共有箇条書きボックスの追加と変更の完全なコードを実装します。

目次1. 新しいII. 変更element-ui は、Ele.me のフロントエンド チームが開発者...

TeamCenter12 にログインする際の 404/503 問題の解決方法

TeamCenter12はアカウントのパスワードを入力し、ログインをクリックすると、404または50...

Linux calコマンドの使用

1. コマンドの紹介cal (カレンダー) コマンドは、現在の日付または指定された日付のグレゴリオ暦...

JavaScript によるダイナミッククリスマスツリーの詳細な説明

目次1. CSS のみを使用して作成したアニメーションのクリスマスツリー2. CSS のみを使用して...

プロジェクトに必須の 8 つの JavaScript コード スニペット

目次1. ファイル拡張子を取得する2. コンテンツをクリップボードにコピーする3. スリープ時間は何...

Linux の高並列性とパフォーマンス最適化の落とし穴の紹介

目次序文Linux アプリケーション実行中に開いているファイルが多すぎる問題の分析と解決Linux ...

Linux で boost.python を使用して C++ 動的ライブラリを呼び出す方法

序文最近、C++ 動的ライブラリをテストするためにロボット フレームワークを使い始めました。ロボット...

2021年の花火効果をJSで描画(ソースコードダウンロード付き)

この作品はフロントエンド開発(JSコンテンツ)の知識を使用していますが、フロント部分の後半部分の知識...

MysqlチューニングExplainツールの詳細な説明と実践的な演習(推奨)

MySQL チューニング ツールの詳細な説明と実践的な演習の説明 ツールの紹介の説明 分析例の説明...

MySQLは現在の日付と時刻を取得する関数

現在の日付 + 時刻 (日付 + 時刻) を取得する関数: now() mysql> now(...

MySQL ルートパスワードをリセットする方法

目次1. ルートパスワードを忘れてしまい、データベースにアクセスできない: DBA にとって、スーパ...

process.env.NODE_ENV 本番環境モードを設定する方法

始める前に、process.env.NODE_ENV にはデフォルトで開発と本番の 2 つの状態しか...

MySQL 学習ノート: データ エンジン

現在のデータベースでサポートされているエンジンを表示します エンジンを表示 +-----------...