Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak usunąć rekordy z tabeli, aby zostały tylko najnowsze?
tryme
post
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 5.12.2005

Ostrzeżenie: (0%)
-----


Jak waszym zdaniem najlepiej usunąć z tabeli wszystkie rekordy pozostawiając 500 ostatnio dodanych rekordów?

Czyli jak najlepiej zastąpić poniższe zapytania?

  1. SELECT `id` FROM `{$db_ostatnie}` ORDER BY `data` DESC LIMIT 0, 500
  2.  
  3. DELETE FROM `{$db_ostatnie}` WHERE `id` NOT IN ({$pozostaw_id})


Dziękuję za pomoc.
Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Niestety zastosowanie LIMIT z OFFSETem nie działa, a szkoda bo możnaby zrobić np. tak:
  1. DELETE FROM tabela ORDER BY id DESC LIMIT 500, 99999

jako OFFSET podając jakąś dużą liczbę. Chyba pozostaje jedynie konstrukcja z podzapytaniem (czyli połączenie tego co masz w jedno zapytanie):
  1. DELETE FROM tabela WHERE id NOT IN (SELECT id FROM tabela ORDER BY id DESC LIMIT 500 )
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 01:42