Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: Jak usun±æ rekordy z tabeli, aby zosta³y tylko najnowsze?
Forum PHP.pl > Forum > Bazy danych > MySQL
tryme
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.
phpion
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 )
To jest wersja lo-fi g³ównej zawarto¶ci. Aby zobaczyæ pe³n± wersjê z wiêksz± zawarto¶ci±, obrazkami i formatowaniem proszê kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.