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

推薦する

IE6 および IE7 で DIV コンテナの固定高さを使用するためのヒント

IE6 と IE7 では CSS の解釈に多くの違いがあります。今日はそのうちの 1 つである高さに...

Vue3 における親コンポーネントと子コンポーネント間の値の転送の詳細な説明

vue3 が誕生してからかなり時間が経ち、筆者も最近になって vue3 を学び始めました。 vue2...

HTML いくつかの特別な分割線効果

1. 基本ライン 2. 特殊効果(効果は独立しておらず、互いに組み合わせることができます) 1. 両...

MySQL データベース分離レベルと MVCC の詳細な説明

目次1. 分離レベルコミットされていない読み取りREAD COMMITED (コミット読み取り/非反...

Vue は Ctrip のカルーセル効果を模倣します (スライディング カルーセル、以下は高度に適応)

まずケースを見てみましょう。vue+swiper を使用して実装します。スライドの高さが異なる場合、...

JavaプログラミングでJavaScriptの超実用的なテーブルプラグインを書く

目次効果ドキュメント最初のステップステップ2ステップ3ソースコード効果ドキュメント最初のステップta...

MySQL 実行ステータスの表示と分析

MySQL のパフォーマンスに問題があると思われる場合は、通常、まずshow processlist...

JavaScript はチェックボックスの選択機能を実装します

この記事の例では、すべてのチェックボックスの選択を実現するためのJavaScriptの具体的なコード...

HTML フォーム コントロールの無効な属性の読み取り専用と無効の概要

HTML でフォームの送信を無効にする方法は 2 つあります。 1. コントロールタグにreadon...

ウェブサイト上で flv/MP4 やその他のビデオ ファイルを再生できない問題は、MIME タイプに関連しています。

ウェブサイトを作成している際に、flv や MP4 形式などのビデオ ファイルはローカルでは正常に再...

HTMLの基本構造を包括的に理解する

HTML入門ハイパーテキスト マークアップ言語: ハイパーテキスト マークアップ言語ハイパーテキスト...

Linux システムでキャッシュをクリアする方法の概要

1) キャッシュメカニズムの紹介Linux システムでは、ファイルシステムのパフォーマンスを向上させ...

VueはElementUIのフォームサンプルコードを模倣する

実装要件ElementUI を模倣したフォームは、インデックス コンポーネント、Form フォーム ...

VueはPCカメラを呼び出して写真機能を実現します

この記事の例では、VueがPCカメラを呼び出して写真機能を実現する具体的なコードを参考までに共有して...

MySQL で置換操作を使用したときにデータ損失が発生する問題の解決策

序文同社の開発者は、データの更新時に replace into ステートメントを使用していました。不...