Nur x-Dateien in einer mySQL-Datenbank stehen lassen

Bash, Shell, PHP, Python, Perl, CGI
Post Reply
jeroen
Posts: 10
Joined: 2003-12-15 02:34
 

Nur x-Dateien in einer mySQL-Datenbank stehen lassen

Post 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 ???
projekt2501
Posts: 92
Joined: 2003-08-14 08:23
Contact:
 

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

Post 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 ;)
kase
Posts: 1031
Joined: 2002-10-14 22:56
 

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

Post 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.
projekt2501
Posts: 92
Joined: 2003-08-14 08:23
Contact:
 

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

Post 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...
jeroen
Posts: 10
Joined: 2003-12-15 02:34
 

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

Post 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 :)
Post Reply