sql >> Databasteknik >  >> RDS >> Mysql

Ta bort alla rader och behåll senaste x kvar

DELETE stöder en ORDER BY och LIMIT klausul, så det är möjligt. Men på grund av DELETE s referensrestriktioner och parametrar för LIMIT du behöver två frågor.

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

Observera att detta förmodligen kommer att kräva en mellanliggande teknik. Jag har visat frågorna som referens.



  1. UPPDATERING med jsonb_set() påverkar bara ett objekt i kapslad array

  2. Stored Procedure-SQL-utvecklare

  3. Använder Prepared Statement i C# med Mysql

  4. Använda Wordpress Användaruppgifter med ett php-skript för att skicka data till en iOS-app