[SQL]Usuń wszystkie rekordy starsze od 5 najnowszych

Potrzebuję zapytanie SQL mówiące

“Usuń wszystkie rekordy z tabeli news_id które są starsze od najnowszych pięciu”

Mam na stronie newsy i chciałbym aby pokazywała tylko 5, w bazie mam m.in. kolumny, news_id oraz data_dodania - wpisywana funkcją NOW();

tak, wiem że można wyświetlić po prostu pięć najnowszych ale ja chciałbym automatycznie zwalniać miejsce w bazie

Zajrzyj do howto mysql.com to zrobisz to w 3s, podstawy :wink:

Swoja drogą poczytaj o indeksach coś czuje, że przyda Ci się i unikniesz pytań “dlaczego taaak wolno” :stuck_out_tongue:

po co mam to indeksować skoro mam news_id - identyfikator każdego newsa przydzielany automatycznie

http://di.com.pl/porady/25700,0,Porada_ … kacji.html

dalej nie bardzo rozumiem po co mi do tego indeksy?

Po to żeby szybciej wykonywać operacje na tabelach z dużą ilością danych. Wygeneruj sobie tabelę np. z 10 tysiącami newsów, wykonaj kilka zapytań i zapisz ich czasy. Później załóż indeksy na newralgicznych polach i znowu zapisz czasy. Później je porównaj i wszystko stanie się jasne.

Panowie, pytanie jest o warunkowe kasowanie rekordów, nie o optymalizację bazy.

Poza tym indeksy nie są cudownym lekiem na wszystko i nie wszędzie i zawsze jest wskazane ich stosowanie.

Z samej treści wynika tutaj, że tabela nie będzie zawierała tysięcy rekordów a co najwyżej kilkadziesiąt - pakowanie w to indeksów to chyba pomyłka.

Wracając do pytania - zawsze możesz sobie policzyć ile jest wszystkich rekordów, a potem już tylko skasować X-5 rekordów posortowanych rosnąco po dacie.

Jasne przecież zawsze będzie “pracował” na tabelach z 5 rekordami, równie dobrze można rzucić hasło typu “Joiny sie nie skalują” a i tak większość używa ich za często. Dobre nawyki należy przyswajać już od samego początku szczególnie jeżeli chodzi o bazy danych.

Gaast, czy ja napisałem ZAWSZE? Pisałem o tym konkretnym przypadku.

A co do nawyków, to raczej do dobrych nawyków należy stosowanie rozwiązań adekwatnych do założeń projektu.

Sorry, ale to jest właśnie optymalizacja.