ホームページ >データベース >mysql チュートリアル >SQL データベース テーブルから上位 N 行を除くすべての行を削除するにはどうすればよいですか?
データベース テーブルから上位 n 行を除くすべての行を削除する SQL クエリ
多くのシナリオでは、データベース テーブルからすべてのデータを削除することが必要になります。データベース テーブルの上位 n 行を除く。この操作では、必要な数の行のみが確実に保持されるように、慎重に作成されたクエリが必要です。
推奨されるアプローチ:
先頭を除くすべてを削除する最も効率的な方法SQL でテーブルから n 行を取得することは、目的の行を選択し、DELETE ステートメントを使用して残りの行を削除するクエリを実行することです。次のクエリ テンプレートは、このアプローチを示しています。
DELETE FROM TableName WHERE ID NOT IN ( SELECT DISTINCT TOP n ID FROM TableName ORDER BY ID )
利点:
例:
次のデータを含む "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 サイトの他の関連記事を参照してください。