webForumDet fria alternativet

Radera efter 150:e inlägget?

ASP

5 svar · 236 visningar · startad av Bosse168

Medlem sedan nov. 20031 018 inlägg
Frågan#1

Hur gör man för att räkna en användares gäsboks inlägg och om man har mer än 150 inlägg så raderas dom. Alltså bara spara dom 150 nyaste.

P.s. Använder en MySQL databas.

Medlem sedan dec. 20003 563 inlägg
#2

Om du har mySQL 4.1 eller senare funkar detta i alla fall

DELETE FROM tbl WHERE ID NOT IN (SELECT ID FROM tbl ORDER BY ID DESC LIMIT 150)
Medlem sedan nov. 20031 018 inlägg
#3

Kör MySQL 3.23.56....

Medlem sedan dec. 20003 563 inlägg
#4

Det finns säkert någon smart SQL-lösning på detta. Annars funkar detta om du implenterar lite asp-kod.

' Diversedatabaskoder får läggas till
Dim str
rs = conn.execute("SELECT ID FROM tbl ORDER BY ID DESC LIMIT 150")
if not rs.eof()
  do until rs.eof()
    str = str & rs("ID") & ", "
    rs.movenext
  loop
  str = left(str, len(str)-2)
  conn.execute("DELETE FROM tbl WHERE ID NOT IN (" & str & ")")
end if
Medlem sedan nov. 20031 018 inlägg
#5

den koden raderar väl alla poster efter 150?
Jag vill att den bara ska radera varje användares (medlem) inlägg när dom kommer över 150 poster.

Medlem sedan mars 20032 667 inlägg
#6

Så här du menar?

query = "DELETE FROM tabell WHERE user = 1 ORDER BY DATE DESC LIMIT 150, -1"
269 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
134 ms — ändringar (db)