[MySQL] Usuwanie rekordów "od końca"

0

Chciałbym usunąć wszystkie rekordy z tabeli pozostawiając jednak 10 najnowszych. Czytałem że do polecenia DELETE można dodać opcje LIMIT i DESC ale mi to nie działa. Ktoś ma jakiś pomysł?

0

No właśnie czytałem ten artykuł i nie moge sobie poradzic :(

0

sam limit Ci nie wystarczy, bo nie wiadomo ile dokładnie jest krotek w tabeli, dlatego

delete from tabela
where id not in 
  (
   Select id from tabela
   order By id ASC Limit 10 --  dzięki Misiekd za czujne oko :)
  )

Jeśli nic nie pokićkałem to powinno zadziałać :)

0

są dwie opcje

  1. najpierw
select count(*) from tabela;

a potem

DELETE FROM tabela ORDER BY kolumna LIMIT wartosc_z_poprzedniego_selecta_minus_10;
  1. jak podał id02009 tylko, z poprawką
DELETE FROM tabela
WHERE id NOT IN 
  (
   SELECT id FROM tabela
   ORDER BY id desc limit 10
  )

1 użytkowników online, w tym zalogowanych: 0, gości: 1