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?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
25. januar 2004 - 23:41
#1
Måske noget i den her stil: delete from tabel order by tid desc limit 20,99999
25. januar 2004 - 23:48
#2
jeps.. men det kan jeg ikke få til at virke... Er det fordi der mangler 'where'?
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.
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.
26. januar 2004 - 00:08
#5
ja jeg ændrede naturligvis til korrekt tabel+række :)
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");
26. januar 2004 - 00:09
#7
tid == time ;o)
26. januar 2004 - 00:11
#8
Hov det skal selvfølgelig osse være: DESC i begge forespørgsler.
26. januar 2004 - 00:12
#9
og id>$minid skal så være: id<$minid
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");
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 ;)
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).
26. januar 2004 - 00:20
#13
OBS: Husk at vende > til <
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?
26. januar 2004 - 20:06
#15
28. februar 2004 - 22:14
#16
i må svare hvis i vil have point...
29. februar 2004 - 01:27
#17
Ok så.
Vi tilbyder markedets bedste kurser inden for webudvikling