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
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
- najpierw
select count(*) from tabela;
a potem
DELETE FROM tabela ORDER BY kolumna LIMIT wartosc_z_poprzedniego_selecta_minus_10;
- jak podał id02009 tylko, z poprawką
DELETE FROM tabela
WHERE id NOT IN
(
SELECT id FROM tabela
ORDER BY id desc limit 10
)