Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Löschen Sie alle Zeilen und behalten Sie das letzte x übrig

DELETE unterstützt ein ORDER BY und LIMIT Klausel, also ist es möglich. Allerdings wegen DELETE Referenzbeschränkungen und Parameter von LIMIT Sie benötigen zwei Abfragen.

SELECT COUNT(*) AS total FROM table  WHERE roomid = 1;
-- run only if count is > 3
DELETE FROM table WHERE roomid = 1 LIMIT total - 3;

Bitte beachten Sie, dass dies wahrscheinlich eine zwischengeschaltete Technologie erfordert. Ich habe die Abfragen als Referenz gezeigt.