Page 1 of 1

Nur x-Dateien in einer mySQL-Datenbank stehen lassen

Posted: 2003-12-15 11:46
by jeroen
Hallo,

ich habe eine Datenbanktabelle (mySQL), in welcher zig Einträge sind. Nun möchte ich aber, dass nur 5 oder 10 der neuesten Einträge bestehen bleiben und alle anderen gelöscht werden.

Code: Select all

$sql = "DELETE * FROM testtabelle SORT BY datum LIMIT 0,5";
Das war so ungefähr mein Denkansatz. Aber so einfach scheint das net zu funktionieren.

Hat jemand eine Idee ???

Re: Nur x-Dateien in einer mySQL-Datenbank stehen lassen

Posted: 2003-12-15 12:37
by projekt2501
Das ist jetzt grad mal eine ad-hoc Lösung, die weder schön noch effizient ist.

Code: Select all

$sql=mysql_query("SELECT * from testtabelle SORT BY datum");
mysql_query("DELETE * FROM testtabelle");
for($i=0; $i<5; $i++)
{
    mysql_query("INSERT INTO testtabelle SET ... ");
}
---

Du kannst natürlich auch hingehen das datum des fünften Eintrags auslesen(als $datum) und dann

Code: Select all

"DELETE * FROM testtabelle WHERE datum<'$datum'"
machen. Ist vmtl. einfacher ;)

Re: Nur x-Dateien in einer mySQL-Datenbank stehen lassen

Posted: 2003-12-15 13:48
by kase
Der DELETE * ist falsch...

(übrigens in deinem Post und auch von Jeroen)

http://www.mysql.com/doc/en/DELETE.html

DELETE FROM table ORDER BY datum LIMIT 5

Ich würde vorher mit einem SELECT prüfen, ob die Reihenfolge stimmt, und dann nicht die 5 Ã?ltesten stehen bleiben, asonsten musst du nach datum noch ein DESC einfügen.

Re: Nur x-Dateien in einer mySQL-Datenbank stehen lassen

Posted: 2003-12-15 20:23
by projekt2501
kase wrote:Der DELETE * ist falsch...

(übrigens in deinem Post und auch von Jeroen)

http://www.mysql.com/doc/en/DELETE.html

DELETE FROM table ORDER BY datum LIMIT 5

Ich würde vorher mit einem SELECT prüfen, ob die Reihenfolge stimmt, und dann nicht die 5 Ã?ltesten stehen bleiben, asonsten musst du nach datum noch ein DESC einfügen.
ja stimmt schon... hab einfach den syntax aus dem ersten post übernommen...

Sollte ja auch nur eine Anregung für Ideen sein...

Re: Nur x-Dateien in einer mySQL-Datenbank stehen lassen

Posted: 2003-12-16 16:51
by jeroen
Das war es leider nicht. Mit dem Befehl werden "nur" 5 Dateien gelöscht. Habe jetzt mal

Code: Select all

"DELETE FROM tabelle ORDER BY datum LIMIT 5, 10000"
ausprobiert. Und das funktioniert komischerweise :)