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ファイルコマンドの使用

推薦する

NavicatがMySQLに接続すると、10060、1045エラーとmy.iniの場所が報告されます。

Navicat は、データベースに接続するときにエラー 10060 および 1045 を報告します...

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

圧縮パッケージのインストールは、mysql-5.7 以降、大幅に変更されました。この記事では、mys...

MySQL データベースの集計クエリと結合クエリ操作

目次1. クエリ結果を挿入する2. 集計クエリ2.1 はじめに2.2 集計関数2.3 group b...

2時間のDocker入門チュートリアル

目次1.0 はじめに2.0 Dockerのインストール3.0基本的なDockerコマンド4.0 Do...

mysql8.x docker リモートアクセスの詳細な設定

目次環境条件エラーが発生しました回避策1. mysql dockerにログインする2. ルートパスワ...

Vueカスケードドロップダウンボックスの設計と実装

目次1. データベース設計2. フロントエンドページ3. 完全なデモフロントエンド開発では、カスケー...

Vueバックグラウンド管理に多言語機能を追加する例

目次1.まず、main.jsページを設定します2. 対応するパスの下で言語パックを構成します。ここに...

dockerfile-maven-plugin 使用ガイドの概要

目次pom 構成Setting.xml 構成ログインステータスログインが必要ですログインは必要ありま...

MySQLをシンプルに学ぶ

序文データベースは常に私の弱点でした。自分の経験 (python+sqlalchemy) を組み合わ...

HTMLで細い線のテーブルを作成する簡単な例

この細線の表を作成する方法については、Baidu で検索すると、表に対して border="...

一般的なMySQLコマンドの概要

mysqlrootパスワードの設定と変更初めて MySQL データベースに入ります。 !環境変数にm...

17 個の JavaScript ワンライナー

目次1. DOMとBOM関連1. 要素にフォーカスがあるかどうかを確認する2. 要素の兄弟ノードをす...

Vue は Tencent TIM インスタント メッセージングを統合します

この記事では主に、Tencent TIM インスタント メッセージングを Vue と統合する方法を紹...

MySQL データベースのバックアップをスケジュールするいくつかの方法 (包括的)

目次1. データをバックアップするためのmysqldumpコマンド2. 一般的なmysqldump操...