Mysql のいくつかの複雑な SQL ステートメント (重複行のクエリと削除)

Mysql のいくつかの複雑な SQL ステートメント (重複行のクエリと削除)

1. 重複行を見つける

blog_user_relation a から * を選択 WHERE (a.account_instance_id,a.follow_account_instance_id) 
IN (SELECT account_instance_id,follow_account_instance_id FROM blog_user_relation GROUP BY account_instance_id, follow_account_instance_id HAVING
 カウント(*) > 1)

2. 重複行を削除する(1行を残す)

PS: MySQL の削除のため、削除されたテーブルの where 条件に in が含まれており、このテーブルも in に存在する場合は、削除できません。

/*一時テーブルを作成する*/
blog_user_relation_temp というテーブルを作成します
(
 SELECT * FROM blog_user_relation a WHERE 
 (a.アカウントインスタンスID、a.フォローアカウントインスタンスID) 
 IN ( SELECT account_instance_id,follow_account_instance_id FROM blog_user_relation GROUP BY account_instance_id, follow_account_instance_id HAVING COUNT(*) > 1)
 そして 
 リレーションID 
 NOT IN (SELECT MIN(relation_id) FROM blog_user_relation GROUP BY account_instance_id, follow_account_instance_id HAVING COUNT(*)>1));

/*データを削除*/
`blog_user_relation` から relationship_id を削除します (relation_id を blog_user_relation_temp から選択します)。

/*一時テーブルを削除*/
blog_user_relation_temp テーブルを削除します。

以下もご興味があるかもしれません:
  • SQLバッチ置換ステートメントを使用して、フィールドの内容を変更、追加、削除します。
  • 重複レコードを削除し、1つだけ残すSQL文
  • 知っておくべきSQL文(IV)データの削除と更新
  • 知っておくべきSQL文(パート2)テーブルの作成、テーブル構造の変更、テーブルの削除
  • SQL ステートメントを使用して制約を作成および削除するためのサンプル コード
  • OracleはSQL文を使用してフィールドを追加します(SQLフィールド削除文)
  • MySQL で指定されたプレフィックス テーブルを一括削除する SQL ステートメント
  • SQL ステートメントを使用して外部キーと主キーを削除および追加する方法
  • MySQL の Delete および Truncate ステートメントの比較
  • 一般的なSQL削除ステートメントの原則の違いを理解するだけです

<<:  js でパズルゲームを実装する

>>:  nginx での listen ディレクティブの例の分析

推薦する

ウェブサイト構築経験概要

<br />注目を集めるウェブサイトを作成するには、どのような原則に従うべきでしょうか?...

Centos7サーバーの基本的なセキュリティ設定手順

pingスキャンをオフにする(役に立たないが)まずルートに切り替えるエコー 1 > /proc...

Linux コマンドラインのクイックヒント: ファイルの検索方法

私たちのコンピューターには、ディレクトリ、写真、ソース コードなどのファイルが保存されています。たく...

Linux での mysql および mysql.sock のインストールに関する問題

最近、Linux に Aphace、mysql、php をインストールするときに多くの問題に遭遇しま...

MySQL-8.0.26 構成グラフィックチュートリアル

はじめに: 最近、会社のプロジェクトでデータベースのバージョンが変更されました。ここでは、MySQL...

VueはTodoListの例をカプセル化し、ブラウザのローカルキャッシュのアプリケーションを実装します。

この記事では主に、Vue で TodoList をカプセル化するケースと、ブラウザのローカル キャッ...

Jenkinsはマイクロサービスをパッケージ化してDockerイメージを構築し、実行します。

目次環境の準備始める1. GitLabリモートリポジトリがマイクロサービスプロジェクトを作成する2....

React 合成イベントの説明

目次入力ボックスをクリックして開始します拡張機能入力ボックスをクリックすると複数のイベントが発生しま...

Presto をインストールし、Docker で Hive を接続する詳細なプロセス

1. はじめにPresto は、ギガバイトからペタバイトに及ぶデータ ソースに対してインタラクティブ...

MySQL の FIND_IN_SET() と IN の違いを簡単に分析します

以前、あるプロジェクトでMysql FIND_IN_SET関数を使用したことがありますが、非常に便利...

この記事ではCSSボーダーの使い方を説明します

境界線のスタイルborder-style プロパティは、表示する境界線の種類を指定します。 bord...

MySQL の一般的な日付比較および計算関数

MySql での時間比較の実装unix_timestamp() unix_timestamp 関数は...

WindowsでiTunesのバックアップパスを変更する方法

0. 準備: • iTunesを閉じる• タスクマネージャーでiTunesから始まるサービスを終了し...

6つの珍しいHTMLタグ

まず: <abbr> または <acronym>これら 2 つの記号は同じ意...

VS2019をMySQLデータベースに接続するプロセスと一般的な問題の概要

今日の午後からVS2019をMySQLで使えるのではないかと思い、いろいろ環境構築を始めました。プロ...