Avatar billede peturkirke Novice
02. juni 2003 - 16:35 Der er 18 kommentarer og
1 løsning

sletning af poster

hvordan sletter jeg f.eks. de ældste 5 poster i min MySQL tabel ?
(jeg har en timestamp felt, som jeg kan sortere efter)
Avatar billede peturkirke Novice
02. juni 2003 - 16:37 #1
altså jeg mener ikke manuelt !!
Avatar billede ahv Nybegynder
02. juni 2003 - 16:39 #2
DELETE FROM tabel ORDER BY timestampfelt LIMIT 5
Avatar billede ahv Nybegynder
02. juni 2003 - 16:40 #3
DELETE FROM tabel ORDER BY timestampfelt ASC LIMIT 5
Avatar billede peturkirke Novice
02. juni 2003 - 16:57 #4
jeg får en parse error ! er dette ikke rigtigt ?:

$sql = "DELETE FROM tabel ORDER BY Tid LIMIT $slet";
$result = mysql_query($sql);
Avatar billede ahv Nybegynder
02. juni 2003 - 17:23 #5
Hedder din tabel tabel? Staves Tid med stort T i tabellen?

mysql_query("DELETE FROM tabel ORDER BY Tid LIMIT $slet");
Avatar billede ahv Nybegynder
02. juni 2003 - 17:23 #6
prøv evt:

mysql_query("DELETE FROM tabel ORDER BY Tid LIMIT $slet") or die(mysql_error());
Avatar billede peturkirke Novice
02. juni 2003 - 17:26 #7
nej jeg fandt fejlen - nu kører scriptet, men intet bliver slettet
det siger noget om, at fejlen ligger ved ORDER BY ?
Avatar billede peturkirke Novice
02. juni 2003 - 17:27 #8
Er du sikker på man kan bruge ORDER BY sammen med DELETE ?
Avatar billede peturkirke Novice
02. juni 2003 - 17:32 #9
ja det kan man - det har jeg fundet ud af
Avatar billede peturkirke Novice
02. juni 2003 - 17:33 #10
kan man ikke sortere på et timestamp felt ?
Avatar billede ahv Nybegynder
02. juni 2003 - 17:34 #11
indeholder $slet noget?

prøv evt. echo $slet lige inden for at sikre at den ikke bare er 0
Avatar billede peturkirke Novice
02. juni 2003 - 17:35 #12
ja den indeholder tallet 7
det har jeg checket
Avatar billede peturkirke Novice
02. juni 2003 - 17:40 #13
meget mærkeligt, synes jeg
Avatar billede peturkirke Novice
02. juni 2003 - 17:42 #14
når jeg fjerner ORDER BY, så fungerer det !?
Avatar billede tipsen Nybegynder
02. juni 2003 - 19:05 #15
Du kan kun bruge "ORDER BY", hvis du benytter MySQL v. 4.x, jvf: "If an ORDER BY clause is used (available from MySQL 4.0.0), the rows will be deleted in that order. This is really only useful in conjunction with LIMIT. For example:"

Fra: http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#DELETE
Avatar billede peturkirke Novice
03. juni 2003 - 10:17 #16
Jeg har version 3, et eller andet, dvs ikke version 4.
Avatar billede tipsen Nybegynder
03. juni 2003 - 11:47 #17
pseudokode:

SELECT id FROM tabel ORDER BY tid ASC LIMIT 0,5
foreach($id as $sletid) {
  DELETE FROM tabel WHERE id=$sletid
}

Dvs. pil de 5 ældste poster ud og slet dem derefter enkeltvis udfra deres unikke id - eventuelt udfra timestamp, men det behøver vel egentlig ikke være unikt...
Avatar billede peturkirke Novice
03. juni 2003 - 11:50 #18
tak - jeg får ikke givet dig poeng
skriv igen
Avatar billede tipsen Nybegynder
03. juni 2003 - 12:05 #19
Jeg kan ikke lige gennemskue om det er bedste løsning i mysql v. 3.x, men hvis du på et tidspunkt skifter til v. 4.x, så bør du også ændre ovenstående.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester