Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Usuń wszystkie wiersze i zachowaj ostatnie x w lewo

DELETE obsługuje ORDER BY i LIMIT klauzuli, więc jest to możliwe. Jednak ze względu na DELETE ograniczenia referencyjne i parametry LIMIT potrzebujesz dwóch zapytań.

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

Należy pamiętać, że będzie to prawdopodobnie wymagało technologii pośredniczącej. Przedstawiłem zapytania w celach informacyjnych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak utworzyć odwrotną zmienną uporządkowaną w moim sql

  2. Konwersja tabeli z MyISAM do INNODB

  3. Jeden klucz obcy z 2 tabelami referencji

  4. Wstaw wartość dynamicznego pola wyboru w bazie danych Mysql i pokaż wiadomość o przesłaniu danych

  5. Zwróć zarówno wynik zapytania, jak i liczbę wierszy