Heim  >  Artikel  >  Datenbank  >  Wie lösche ich Zeilen in MySQL basierend auf den neuesten 15 Datensätzen mithilfe von LIMIT in einer Unterabfrage?

Wie lösche ich Zeilen in MySQL basierend auf den neuesten 15 Datensätzen mithilfe von LIMIT in einer Unterabfrage?

Susan Sarandon
Susan SarandonOriginal
2024-11-15 11:48:02461Durchsuche

How to Delete Rows in MySQL Based on the Latest 15 Records Using LIMIT in a Subquery?

MySQL-Unterabfrage mit LIMIT-Einschränkung

In MySQL kann der Versuch, eine LIMIT-Klausel in einer Unterabfrage zu verwenden, die den IN-Operator verwendet, einen Fehler auslösen Meldung, dass MySQL diese Funktionalität nicht unterstützt. Dieser Artikel bietet eine Lösung für dieses Problem und ermöglicht Ihnen das Löschen von Zeilen aus einer Tabelle basierend auf einer bestimmten Bedingung in Bezug auf die letzten 15 Datensätze in der Tabelle.

Um das gewünschte Ergebnis zu erzielen, können Sie die folgende Abfrage verwenden Struktur:

DELETE 
FROM posts 
WHERE id not in (
      SELECT * FROM (
            SELECT id 
            FROM posts 
            ORDER BY timestamp desc 
            limit 0, 15
      ) 
      as t);

Die äußere DELETE-Anweisung zielt auf die Posts-Tabelle zum Löschen von Zeilen ab. Der IN-Operator wird verwendet, um die Zeilen zu identifizieren, die beibehalten werden sollen, also diejenigen, die im Ergebnis der Unterabfrage gefunden werden.

Die Unterabfrage wählt das ID-Feld aus der Beitragstabelle aus, ordnet die Ergebnisse in absteigender Reihenfolge nach Zeitstempel und wendet eine LIMIT-Klausel an, um die obersten 15 Datensätze abzurufen. Durch die Verwendung des Alias ​​t erstellt die Unterabfrage eine temporäre Tabelle für eine effiziente Verarbeitung.

Diese Problemumgehung beseitigt effektiv die MySQL-Einschränkung und ermöglicht Ihnen, den beabsichtigten Vorgang des Löschens aller Beiträge durchzuführen, die nicht in die letzten 15 fallen Aufzeichnungen.

Das obige ist der detaillierte Inhalt vonWie lösche ich Zeilen in MySQL basierend auf den neuesten 15 Datensätzen mithilfe von LIMIT in einer Unterabfrage?. 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