Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Usuwanie rekordów, gdy upłynął dany czas
Szymad
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 1.12.2011

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


Cześć,

to przedszkole, więc piszę tu. Nie śmiejcie się ze mnie, bo jeszcze wpadnę w depresję i popełnię samobójstwo. (IMG:style_emoticons/default/biggrin.gif)

Koniec żartów. Tabela ma taką budowę (nazywa się `promotes`):
ID - int
INFO - text
DAYS - int
DATESTART - date

Nom. Chodzi mi o utworzenie zapytania jak najbardziej opytmalnego, który usunie dany rekord po upłynięciu liczby dni podanych w DAYS od DATESTART.

Nie znam się za bardzo na SQL, ale czytałem, że samym SQL się take coś zrobi, bez udziału PHP. (IMG:style_emoticons/default/smile.gif)

Ten post edytował Szymad 1.12.2012, 21:23:59
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tab
post
Post #2





Grupa: Zarejestrowani
Postów: 75
Pomógł: 20
Dołączył: 8.10.2012

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


No wiec przykładowo jak chcesz usunac wszystkie posty starsze niz miesiac:
  1. DELETE FROM promotes WHERE datestart < DATE_SUB(NOW(), INTERVAL 1 MONTH)

Czyli sprawdzamy czy datestart jest starszy od roznicy sekund do teraz i sekund do chwili ktora byla miesiac temu (czyli po prostu czy wpis jest starszy niz miesiac). Do tego sluzy funkcja mysql DATE_SUB. A co do usuwania to mozesz albo to odpalac przy kazdym odczytywaniu/dodawaniu rekordow do bazy, albo (optymalniej) zlecic to zadanie cron'owi ktory bedzie sie wlaczał co miesiac i usuwał stare rekordy

Ten post edytował tab 1.12.2012, 21:35:53
Go to the top of the page
+Quote Post

Posty w temacie


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: 9.10.2025 - 16:18