webForumDet fria alternativet

ta bort efter 30

13 svar · 392 visningar · startad av dendålige

dendåligeMedlem sedan jan. 2003188 inlägg
#1

Vill ta bort alla inlägg som är äldre än dom 30 nyaste...
får det inte att fungera...

SQL = "DELETE FROM mess Order by datum Desc limit 30"

får bara:

[TCX][MyODBC]You have an error in your SQL syntax near 'order by datum DESC limit 30' at line 1

(MySQL)

OveRRidEMedlem sedan feb. 200112 078 inlägg
#2

Flyttas från ASP, VBScript.

SPiNMedlem sedan mars 20007 896 inlägg
#3

Vilken version av MySQL använder du?

DELETE FROM mess
WHERE id NOT IN (
     SELECT id
     FROM mess
     ORDER BY id DESC
     LIMIT 30
);
dendåligeMedlem sedan jan. 2003188 inlägg
#4

hmmm funkade inte så bra det där heller... har 3.14 eller något sådant tror jag...

dendåligeMedlem sedan jan. 2003188 inlägg
#5

3.23 är det...

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Då får du först hämta de 30 med nyaste ID och sedan bygga
en delete fråga

delete from t where id not in (1,2,47,11,34,...)
dendåligeMedlem sedan jan. 2003188 inlägg
#7

det går inte bara att ta bort dom som är äldre en dom 30 nyaste?

om inte, hur ska man ta reda på dom 30 nyaste id nummrena då? på ett smidigt sett?

@ndersMedlem sedan juni 200032 969 inlägg
#8
SELECT ID FROM mess ORDER BY ID DESC LIMIT 30
dendåligeMedlem sedan jan. 2003188 inlägg
#9

okey... hur ska jag köra på den sen då? behöver jag inte loopa ut dom 30 då?
och sen köra dom i delete sql frågan?

@ndersMedlem sedan juni 200032 969 inlägg
#10

Jo, du måste loopa ut dem till en kanonläcker sträng som du sedan använder i din DELETE-fråga.

dendåligeMedlem sedan jan. 2003188 inlägg
#11

fyfan alltså... vad onödigt... och detta bara för man inte har den senaste versionen?
hmm... ska försöka fixa loopen och det när jag kommer hem då...
hmm... hur ska den se ut ungefär?

@ndersMedlem sedan juni 200032 969 inlägg
#12

typ:

' öppna connectionobjekt
' öppna recordsetobjekt

while not recordsetobjektet.eof
     strIDs = strIDs & "," & recordsetobjektet(0)
     recordsetobjektet.movenext
wend
strIDs = Right(strIDs, Len(strIDs)-1)
aspMedlem sedan aug. 2002733 inlägg
#13

Fråga, går inte detta?

DELET TOP 30 * FROM [tabell] ORDER BY id ASC
LarsGMedlem sedan dec. 200012 464 inlägg
#14

Svar:

Nej.

135 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)