ホームページ >データベース >mysql チュートリアル >SQL データベース テーブルの上位 N 行のみを保持するにはどうすればよいですか?
上位行の保持: SQL でデータベース テーブルから n 以外のすべてを削除する
テーブルをトリミングするタスクに直面したときデータベースでは、先頭の指定した数 (n) の行のみを保持し、残りの行を削除する必要が生じます。これを効果的に達成するために、SQL は簡単な解決策を提供します。
DELETE ステートメントを使用して、上位 n 行を除くすべての行を削除できます。構文は次のとおりです。
DELETE FROM TableName WHERE RowID NOT IN (SELECT TOP n RowID FROM TableName)
このクエリは、サブクエリに表示される行を除く、TableName テーブルからすべての行を選択します。サブクエリはテーブルから上位 n 個の RowID を取得します。
例:
「CustomerID」や「CustomerName」などの列を持つ「Customers」という名前のテーブルについて考えてみましょう。 「CustomerID」に基づいて上位 10 件の顧客を除くすべての顧客を削除するには、次のクエリを使用できます:
DELETE FROM Customers WHERE CustomerID NOT IN (SELECT TOP 10 CustomerID FROM Customers)
注:
Chris が鋭敏に観察したように、サブクエリで TOP 句を使用する場合の欠点は、パフォーマンスに影響を与える可能性があることです。 1 回限りの操作の場合は、それほど大きな問題ではないかもしれませんが、頻繁に使用する場合は、別のアプローチを検討する必要があります。
以上がSQL データベース テーブルの上位 N 行のみを保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。