ホームページ > データベース > mysql チュートリアル > MySQL 5.0 で重複行を削除するにはどうすればよいですか?

MySQL 5.0 で重複行を削除するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-31 03:55:09
オリジナル
778 人が閲覧しました

How to Delete Duplicate Rows in MySQL 5.0?

MySQL 5.0 での重複行の削除

提供されたコードは、サブクエリを使用して、posts テーブル内の重複 ID を特定し、それらの削除を試みます。ただし、このアプローチは MySQL 5.0 と互換性がありません。この問題を回避するには、別の構文を使用するようにコードを変更する必要があります。

コードの書き換え

posts テーブルから重複行を削除するように修正されたコードは次のとおりです。次のように:

DELETE FROM posts WHERE id IN (
    SELECT id
    FROM (
        SELECT id, COUNT(id) AS duplicate_count
        FROM posts
        GROUP BY id
        HAVING duplicate_count > 1
    ) AS subquery
)
ログイン後にコピー

このコードは、ネストされたサブクエリを使用して重複 ID を識別します。サブクエリは、まず ID 列ごとに行をグループ化し、各 ID の出現数をカウントします。重複カウントが 1 より大きい行が選択され、その ID が結果セットとして返されます。

外側のクエリは IN 演算子を使用して、サブクエリによって返された ID を Posts テーブル内の ID と照合します。これにより、重複した行のみが確実に削除されます。

補足

  • データの削除にサブクエリを使用すると、特にサブクエリが使用されている場合は非効率になる可能性があることに注意することが重要です。大量の行を返します。
  • パフォーマンスを向上させるには、結合操作を使用することをお勧めします。サブクエリの代わりに。ただし、これには MySQL 5.1 以降が必要です。

以上がMySQL 5.0 で重複行を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート