Heim >Datenbank >MySQL-Tutorial >Wie lösche ich alle Zeilen außer den obersten N aus einer SQL-Datenbanktabelle?

Wie lösche ich alle Zeilen außer den obersten N aus einer SQL-Datenbanktabelle?

Susan Sarandon
Susan SarandonOriginal
2024-12-29 04:22:09806Durchsuche

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

SQL-Abfrage zum Löschen aller Zeilen außer den ersten n Zeilen aus einer Datenbanktabelle

In vielen Szenarien ist es notwendig, alle Daten aus einer Datenbanktabelle zu entfernen Datenbanktabelle mit Ausnahme der obersten n Zeilen. Dieser Vorgang erfordert eine sorgfältig ausgearbeitete Abfrage, um sicherzustellen, dass nur die gewünschte Anzahl von Zeilen beibehalten wird.

Empfohlener Ansatz:

Der effizienteste Weg, alle bis auf die obersten Zeilen zu löschen n Zeilen aus einer Tabelle in SQL besteht darin, eine Abfrage auszuführen, die die gewünschten Zeilen auswählt und dann die DELETE-Anweisung verwendet, um die verbleibenden Zeilen zu entfernen. Die folgende Abfragevorlage veranschaulicht diesen Ansatz:

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

Vorteile:

  • Diese Methode stellt sicher, dass nur die obersten n Zeilen in der Tabelle erhalten bleiben.
  • Es ist relativ einfach zu implementieren und kann ausgeführt werden effizient.

Beispiel:

Betrachten Sie eine Tabelle mit dem Namen „Umsatz“ mit den folgenden Daten:

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

Um alle außer zu löschen In den oberen beiden Zeilen dieser Tabelle würden wir die folgende Abfrage verwenden:

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

Nachdem diese Abfrage ausgeführt wurde, Die Tabelle „Umsätze“ würde nur die folgenden Zeilen enthalten:

ID Name Amount
1 John 100
2 Mary 200

Das obige ist der detaillierte Inhalt vonWie lösche ich alle Zeilen außer den obersten N aus einer SQL-Datenbanktabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn