重複チェックは、私たちの仕事でよく遭遇するニーズです。次の記事では、MySQL による重複データのクエリ (重複データを削除し、最小 ID を持つデータを一意のデータとして保持する) に関する関連情報を主に紹介します。記事 サンプルコードが詳しく紹介されており、皆様の学習や仕事の参考になります。
推奨コース: MySQL チュートリアル 。
最近、MySQL データベースへのデータのバッチインポート機能に取り組んでいます。バッチインポートから、このようなデータは、データベースに挿入される前に繰り返し判断されないことがわかります。したがって、すべてのデータがインポートされた後でのみ、ステートメントを実行してデータを削除し、データの一意性を確保できます。
以下では多くのことは説明しません。詳細な紹介を見てみましょう。
テーブル構造は次のとおりです。
テーブル名前: ブランド
操作
SQL ステートメントを使用して重複データをクエリします:
SELECT * from brand WHERE brandName IN( select brandName from brand GROUP BY brandName HAVING COUNT(brandName)>1 #条件是数量大于1的重复数据 )
SQL を使用して冗長な重複データを削除し、最小の ID を持つ一意のデータを保持します:
注:
間違った SQL : DELETE FROM brand WHERE brandName IN (ブランドから brandName を選択 GROUP BY brandName HAVING COUNT(brandName)>1)
AND Id NOT IN (ブランド GROUP BY brandName HAVING COUNT(brandName)>1 から MIN(Id) を選択)
ヒント: FROM 句で更新のターゲット テーブル 'brand' を指定することはできません FROM 句で更新のターゲット テーブル 'brand' を指定することはできません
理由は、直接調査したデータはデータ削除の条件として使用できないため、検出されたデータに対して一時テーブルを作成してから、その一時テーブルを削除機能の条件として使用する必要があるためです
正确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) #查询显示重复的数据都是显示最前面的几条,因此不需要查询是否最小值
結果は次のとおりです:
概要:
多数物事は自分で行う必要があります 段階的に検討されます もちろん、インターネット上の提案も非常に貴重な参考資料やリソースです どのような開発を行う場合でも、それをよりよく習得するには、その動作原理を理解する必要があります。
#
以上がMySQLで重複データを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。