開発の背景: 最近、私はバッチ データを MySQL データベースにインポートする機能に取り組んでいます。バッチ インポートから、そのようなデータはデータベースに挿入される前に重複していると判断されないことがわかります。したがって、すべてのデータがインポートされた後にのみ、データの一意性を確保するためにデータを削除するステートメントが実行されます。 詳しい紹介を見てみましょう。 実戦: テーブル構造は次の図に示されています。 意味: ブランド 操作: SQL ステートメントを使用して、重複データがあるかどうかを照会します。 ブランドから*を選択 WHERE brandName IN ( select brandName from brand GROUP BY brandName HAVING COUNT(brandName)>1 #条件は重複データの数が1より大きいことです) SQL を使用して冗長な重複データを削除し、最小の ID を持つ一意のデータを保持します。 注記:
理由は、直接見つかったデータは、データを削除する条件として使用できないためです。まず、見つかったデータの一時テーブルを作成し、その一時テーブルを削除の条件として使用する必要があります。 正しいSQLの書き方: DELETE FROM brand WHERE brandName IN (SELECT brandName FROM (SELECT brandName FROM brand GROUP BY brandName HAVING COUNT(brandName)>1) e) AND Id NOT IN (SELECT Id FROM (SELECT MIN(Id) AS Id FROM brand GROUP BY brandName HAVING COUNT(brandName)>1) t) #重複データのクエリでは最初の数項目のみが表示されるため、最小値かどうかをクエリする必要はありません。 結果は次のとおりです。 要約: 多くのことは、自分で段階的に調べる必要があります。もちろん、インターネット上の提案も非常に貴重な参考資料やリソースです。どのような開発を行うにしても、それをよりよく習得するには、その動作原理を理解する必要があります。 さて、以上がこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただきありがとうございます。 以下もご興味があるかもしれません:
|
>>: Linux の sudo 脆弱性により不正な特権アクセスが発生する可能性がある
取引の実施REDO ログはトランザクションの永続性を保証し、UNDO ログはトランザクションのロール...
MySQL 外部キー制約の無効化と有効化: MySQL 外部キー制約が有効になっているかどうかは、グ...
/etc/my.confファイルで、[mysqld]の下に次の行を追加します: skip-grant...
この記事では、キャンバスでスクラッチカード効果を描画するための具体的なコードを参考までに共有します。...
この記事では、テーブル切り替えプラグインを実装するためのJavaScriptのカプセル化コードを参考...
要素 ui テーブルにはドラッグ アンド ドロップによる並べ替え機能が組み込まれておらず、サードパー...
目次序文1. JDBCタイムアウト設定2. 接続プールのタイムアウト設定3. MyBatisクエリの...
序文2 つのテーブル内の同じフィールドの型が異なっていたり、エンコード タイプが異なっていたりするた...
目次序文データバインディングとは何ですか? Angular のデータバインディングの種類一方向データ...
目次1 システムの紹介2 システムショートカット3 一般的なシステムコマンド1 システムの紹介 1....
1. ダウンロードリンクをダウンロードするダウンロードをクリックします。Oracle アカウントにロ...
MySQL のイベント スケジューラ EVENT は、Unix crontab や Windows ...
私たちウェブマスターは皆、ウェブサイトを最適化する際に記事内のキーワードを太字にすることが最適化に非...
序文昨日、h5 WeChat認証の実装が必要なプロジェクトがありました。したがって、この機能を完了す...
初めての投稿ですので、間違いや問題点などありましたら、コメント欄で指摘していただければ、今後改善させ...