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.0 で重複行を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。