sql >> Database teknologi >  >> RDS >> Mysql

Slet alle rækker og behold seneste x tilbage

DELETE understøtter en ORDER BY og LIMIT klausul, så det er muligt. Men på grund af DELETE 's referencebegrænsninger og parametre for LIMIT du har brug for to forespørgsler.

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

Bemærk venligst, at dette sandsynligvis vil kræve en mellemliggende teknologi. Jeg har vist forespørgslerne til reference.



  1. Sådan konverteres streng med brøk til flydende i Python

  2. Laravel-migrering:Fjern onDelete('cascade') fra eksisterende fremmednøgle

  3. DatabaseError:værdien er for lang til at typetegn varierer (100)

  4. Hvordan kan jeg finde et af mange mulige mønstre blandt en enkelt mySQL-indgang? Mere indeni