Heim >Datenbank >MySQL-Tutorial >Wie lösche ich alle Zeilen außer den obersten N aus einer SQL-Datenbanktabelle?
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:
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!