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 ディレクティブの例の分析

推薦する

MySQL インデックスの長所と短所、およびインデックス作成のガイドライン

1. インデックスを作成する理由(メリット)インデックスを作成するとシステムのパフォーマンスが大幅に...

Vue はブラウザのパスワード記憶機能を無効にするサンプル コードを実装します

情報を探すインターネットで見つかったいくつかの方法: autocomplete="off&...

MySQL の低速クエリの最適化: 理論と実践からの制限の利点

多くの場合、クエリの結果は最大で 1 つのデータ レコードになることが予想されます。この場合、制限 ...

MySQL/MariaDB ルートパスワードリセットチュートリアル

序文パスワードを忘れることは、よく遭遇する問題です。MySQL または MariaDB データベース...

Win7 の VMware 仮想マシンに Linux7.2 をインストールするインターネット アクセス構成チュートリアル

参考までに、win7システム上のVMware仮想マシンにlinux7.2インターネットアクセス構成を...

clipboard.js の使用法の概要

目次(1)はじめに: (2)クリップボードの内容をコピーする方法は次のとおりです。 (3)関数演算に...

JS ベースのページフローティングボックスを実装するためのサンプルコード

スクロール バーを下に引くと、主にposition:fixed;スタイルにより、フローティング ボッ...

MySQLクライアントとサーバーのプロトコルの解釈

目次MySQL クライアント/サーバー プロトコルMySQL サーバーから高いパフォーマンスを得る必...

CocosCreatorで複数のタイマーを使用する方法の詳細な説明

1.タイムアウトを設定する3 秒後に abc を印刷します。一度だけ実行します。 setTimeou...

MySQL データベース開発仕様 [推奨]

最近、問題のある新しい SQL が本番データベースに入力される数を最小限に抑えるために、開発仕様を整...

MySQL で 2 つのデータベース テーブル構造を比較する方法

開発およびデバッグのプロセスでは、新しいコードと古いコードの違いを比較する必要があります。比較には、...

MySQL の複数テーブル関連付け 1 対多クエリを使用して最新のデータを取得する方法の例

この記事では、MySQL で複数のテーブルを使用して 1 対多のクエリを使用して最新のデータを取得す...

Mysql テーブルコメントフィールド取得操作

余計なことは言わないで、コードだけ見てみましょう〜 -- テーブル内のフィールドコメントを表示および...

MySQL のロングトランザクション例の詳細な説明

序文: 「MySQL 入門」シリーズの記事は終了しました。今後も引き続き MySQL に焦点を当て、...

CSS3 で背景の透明化と不透明テキストを実装するサンプルコード

最近、画像上に半透明の背景でテキストを表示する必要があるという要件に遭遇しました。その効果は次のよう...