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

SQLite データベース内の重複行を効率的に削除するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-05 16:01:46
オリジナル
536 人が閲覧しました

How to Efficiently Delete Duplicate Rows in an SQLite Database?

SQLite データベースの重複行の特定と削除

データベース レコード内で重複が発生する可能性があり、データの整合性を維持し、パフォーマンスを最適化する際に課題が生じます。このシナリオには、「hash」 (テキスト) と「d」 (実数) の 2 つの列を持つ大規模な SQLite3 テーブルが含まれており、一部の行では両方の列に重複した値が示されています。目的は、一意の行を保持しながら、これらの重複行を効率的に削除することです。

提供されるソリューションでは、SQLite の一意の rowid 列を利用して行を区別します。以下のクエリは、「hash」値と「d」値の一意の組み合わせごとに最小の ROWID 値を保持することで重複行をターゲットにして削除します。

delete   from YourTable
where    rowid not in
         (
         select  min(rowid)
         from    YourTable
         group by
                 hash
         ,       d
         )
ログイン後にコピー

このクエリは、最初に個別の組み合わせごとに最小 ROWID を識別することで動作します。サブクエリによる「hash」値と「d」値。 「min(rowid)」関数は、同一の「hash」と「d」のペアのグループごとに最小のROWIDを抽出します。その後、メインクエリは 'rowid not in' 句を利用して、ROWID がそれぞれの 'hash' 値と 'd' 値の最小 ROWID に対応しない行を削除します。

このアプローチを利用することで、クエリは、テーブル内の一意のデータを維持しながら、重複行を効率的に識別して削除します。 ROWID列を一意の識別子として使用すると、迅速かつ効果的な削除プロセスが促進され、データの正確性が保証され、将来の操作に向けてデータベースのパフォーマンスが最適化されます。

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

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