webForumDet fria alternativet

Räkna antal och ta bort

Databaser & SQLur Databashanterare & SQL

3 svar · 336 visningar · startad av Qimen

Qimens avatarQimenMedlem sedan juni 20015 009 inlägg
Frågan#1

Hej

Behöver hjälp med lite sql. Det jag vill göra är att räkna antal poster för varje uid i tabellen och om antalet är större än 60 ska de äldsta tas bort så att det blir 60 poster kvar.

id | uid | pwrm_date
1 | 3 | 2007-05-10 00:00:00
2 | 3 | 2007-05-10 01:00:00
3 | 2 | 2007-05-10 00:00:00
4 | 2 | 2007-05-10 01:00:00

Det jag är ute efter är att köra frågan med cronservice och avbelasta själva webbsidan. Varje användare får bara ha 60 (gör inget om han har fler tills cronscriptet körs) poster. Antar detta blir 2 frågor om det överhuvudtaget går att göra på något enkelt och smidigt sätt? Vet inte om det kanske är mer effektivt att spara hur många poster en användare har och när han postar nästa gång och antalet överstiger 60 tar man bort den äldsta? :)

emissionMedlem sedan dec. 19996 721 inlägg
#2

DBMS, version?

Qimens avatarQimenMedlem sedan juni 20015 009 inlägg
#3

Mysql 5.0.

Qimens avatarQimenMedlem sedan juni 20015 009 inlägg
#4

Om man kan räkna och plocka ut alla uidn som har fler än 60 rader så borde det väl gå bra med att loopa igenom resultatet och köra delete. Men då måste jag även veta hur gammal post nummer 60 är (så att jag kan köra delete på alla som är äldre än det).

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