Avatar billede dank Nybegynder
25. januar 2004 - 23:35 Der er 16 kommentarer og
1 løsning

slette i MySQL sorteret efter datetime

Jeg har en tabel 'runlog' som indeholder en rækkerne

id (int)
time (datetime)

f.eks.
id  time
--- ----
0  2004-01-25 21:02:31
1  2004-01-25 21:02:32

Hvordan sletter jeg alt andet end de f.eks. 20 nyeste entries?
Avatar billede detox Nybegynder
25. januar 2004 - 23:41 #1
Måske noget i den her stil:

delete from tabel order by tid desc limit 20,99999
Avatar billede dank Nybegynder
25. januar 2004 - 23:48 #2
jeps.. men det kan jeg ikke få til at virke...

Er det fordi der mangler 'where'?
Avatar billede detox Nybegynder
25. januar 2004 - 23:53 #3
Nej, du behøver ikke en 'where'. Du skal skifte 'tid' med 'time, hvis du ikke har gjort det.
Avatar billede detox Nybegynder
25. januar 2004 - 23:58 #4
Jeg bliver godt nok i tvivl om man kan bruge offset i limit, når det drejer sig om delete.
Avatar billede dank Nybegynder
26. januar 2004 - 00:08 #5
ja jeg ændrede naturligvis til korrekt tabel+række :)
Avatar billede detox Nybegynder
26. januar 2004 - 00:09 #6
Ellers må du bruge 2 forespørgsler, fx:

$minid = mysql_result(mysql_query("select id from tabel order by tid limit 20,1"),0);
mysql_query("delete from tabel where id>$minid order by tid");
Avatar billede detox Nybegynder
26. januar 2004 - 00:09 #7
tid == time ;o)
Avatar billede detox Nybegynder
26. januar 2004 - 00:11 #8
Hov det skal selvfølgelig osse være: DESC i begge forespørgsler.
Avatar billede detox Nybegynder
26. januar 2004 - 00:12 #9
og  id>$minid skal så være:  id<$minid
Avatar billede detox Nybegynder
26. januar 2004 - 00:13 #10
Måske bare sådan:

$minid = mysql_result(mysql_query("select id from tabel order by time desc limit 20,1"),0);
mysql_query("delete from tabel where id<$minid");
Avatar billede dank Nybegynder
26. januar 2004 - 00:15 #11
ok.. den beholder så de 20 ældste, hvor jeg har behov for at beholde de 20 nyeste.. mon ikke jeg kan sætte

desc

ind i din kode.. det må jeg afprøve imorgen ;)
Avatar billede detox Nybegynder
26. januar 2004 - 00:19 #12
Jo, netop hvad jeg nåede frem til i mit sidste indlæg (håber du havde backup på de slettede rækker).
Avatar billede detox Nybegynder
26. januar 2004 - 00:20 #13
OBS: Husk at vende > til <
Avatar billede dank Nybegynder
26. januar 2004 - 20:05 #14
jeg har haft for meget arbejde til at teste dette idag, og når det sikkert ikke før imogen.. Det virker sikkert som det skal så kan du ikke komme mig forlods og oprette svaret nu?
Avatar billede erikjacobsen Ekspert
26. januar 2004 - 20:06 #15
Avatar billede dank Nybegynder
28. februar 2004 - 22:14 #16
i må svare hvis i vil have point...
Avatar billede detox Nybegynder
29. februar 2004 - 01:27 #17
Ok så.
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