Webstatt.org - Community seit 2006 - 2012 (2024?)

'delete from' bedingung direkt im statement

Avatar user-279
14.08.2006 08:21

hallo.

könnte es zwar im anderen thread schreiben - ist aber was ganz anderes und vielleicht hat mal jemand dasselbe problem lächeln.

aalso - ich habe da eine counter_heute tabelle auf einer webseite..und da möchte ich dass die einträge die älter als einen tag sind rausgelöscht werden. an sich kein problem, aber kann man das direkt im delete statement machen? die tabellenstruktur ist

ip | time (timestamp)

also meine idee wäre

mysql_query("DELETE FROM `cntheute` WHERE `time` < TODAY"zwinkern;


(funzt natürlich nicht..)

danke für eure antworten.

Avatar user-253
14.08.2006 08:33

Das geht ganze einfach mit DATE_FORMAT.

In Verbindung mit FROM_UNIXTIME (vielleicht gibt es auch eine Funktion direkt für Timestamps) kannst du so den Timestamp in Tag des Monats formatieren. user-158n wäre deine Abfrage:

DELETE FROM tabelle WHERE DATE_FORMAT(FROM_UNIXTIME(deine_spalte),'%e'zwinkern < DATE_FORMAT(NOW(),'%e'zwinkern

Um auch Daten eines anderen Monats zu löschen musst mit OR noch analog die Abfrage einbauen

Avatar user-279
14.08.2006 08:41

funktioniert. danke dir (wieder mal lächeln ), hast immer eine gute lösung parat.