ホームページ >データベース >mysql チュートリアル >SQL データベース テーブルから上位 N 行を除くすべての行を削除するにはどうすればよいですか?

SQL データベース テーブルから上位 N 行を除くすべての行を削除するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-29 04:22:09806ブラウズ

How to Delete All but the Top N Rows from a SQL Database Table?

データベース テーブルから上位 n 行を除くすべての行を削除する SQL クエリ

多くのシナリオでは、データベース テーブルからすべてのデータを削除することが必要になります。データベース テーブルの上位 n 行を除く。この操作では、必要な数の行のみが確実に保持されるように、慎重に作成されたクエリが必要です。

推奨されるアプローチ:

先頭を除くすべてを削除する最も効率的な方法SQL でテーブルから n 行を取得することは、目的の行を選択し、DELETE ステートメントを使用して残りの行を削除するクエリを実行することです。次のクエリ テンプレートは、このアプローチを示しています。

DELETE FROM TableName WHERE ID NOT IN (
    SELECT DISTINCT TOP n ID
    FROM TableName
    ORDER BY ID
)

利点:

  • この方法では、上位 n 行のみがテーブルに保持されます。
  • 実装は比較的簡単で実行可能です

例:

次のデータを含む "Sales" という名前のテーブルについて考えます。

ID Name Amount
1 John 100
2 Mary 200
3 Bob 300
4 Ann 400

以外のすべてを削除するにはこの表の上部 2 行の場合、次のように使用します。 query:

DELETE FROM Sales WHERE ID NOT IN (
    SELECT DISTINCT TOP 2 ID
    FROM Sales
    ORDER BY ID
)

このクエリを実行すると、「Sales」テーブルには次の行のみが含まれます:

ID Name Amount
1 John 100
2 Mary 200

以上がSQL データベース テーブルから上位 N 行を除くすべての行を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。