sql >> Database >  >> RDS >> Mysql

Verwijder alle rijen en bewaar laatste x links

DELETE ondersteunt een ORDER BY en LIMIT clausule, dus het is mogelijk. Vanwege DELETE 's referentiële beperkingen en parameters van LIMIT je hebt twee vragen nodig.

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

Houd er rekening mee dat hiervoor waarschijnlijk een tussentechniek nodig is. Ik heb de zoekopdrachten ter referentie weergegeven.



  1. Gebruik tabelkolomwaarde voor LIMIT bij het uitvoeren van join

  2. Hoe mysql-script met variabelen uit te voeren met PHP::PDO?

  3. Een weergave maken in SQL Server

  4. SQL meerdere UNNEST in enkele selectielijst