Avatar billede supermand69 Nybegynder
28. januar 2004 - 00:23 Der er 8 kommentarer og
1 løsning

table i MySQL kun have 70 rows

hej...

jeg har en table i MySQL hvor jeg smider rækker ind og de bliver sorteret efter time()

men så snart der er over 70 rækker skal de seneste slettes... hvordan kan jeg let gøre det???
Avatar billede jakoba Nybegynder
28. januar 2004 - 00:51 #1
du mener formodentlig at de ÆLDSTE skal slettes (de seneste ville være de nyeste).

Det bedste vil nok være ikke at gøre det løbende, men istedet tillade at databasen nogengange indeholder mere end 70. Det gør ikke noget at der er flere for du kan blot sætte en limit på hvergang du henter dem ud i den det tids-orden:
    SELECT  felt1, felt2, feelt3
    FROM dintabel
    ORDER BY tiddatofelt DESC
    LIMIT 0,70                  -- denne linie sørger for kun de nyeste 70 --

En gang om ugen kan du så lave en oprydning, der smider de overflødige rækker væk, det gøres med 2 mySQL queries:
første denne
    SELECT @tid := tiddatofelt
    FROM dintabel
    ORDER BY tiddatofelt DESC
    LIMIT 71,1                  -- find tiden for den 71'te --
og umiddelbart efter denne:
    DELETE FROM dintabel
    WHERE tiddatofelt >= @tid

mvh JakobA
Avatar billede jakoba Nybegynder
28. januar 2004 - 00:54 #2
Ups. jeg glemte at 'gamle' datoer er mindre. det skal være:

    DELETE FROM dintabel
    WHERE tiddatofelt <= @tid    -- slet nr 71 og alle der er endnu ældre --
Avatar billede erikjacobsen Ekspert
28. januar 2004 - 09:17 #3
Man kan også bruge DELETE med en LIMIT på ;)
Avatar billede supermand69 Nybegynder
28. januar 2004 - 11:58 #4
det er til en chat, så den skal helst slette hver gang den opdaterer eller folk skriver en besked...

erikjacobsen > giver du et eksempel? :)
Avatar billede supermand69 Nybegynder
28. januar 2004 - 11:59 #5
ups... eller bare hver gang der bliver skrevet en ny besked... :)
Avatar billede supermand69 Nybegynder
28. januar 2004 - 12:43 #6
DELETE FROM $DB.chat ORDER BY time DESC LIMIT 69, 2
Avatar billede supermand69 Nybegynder
29. januar 2004 - 12:28 #7
erikjacobsen -->
hvordan vil du gøre det?? jeg kan ikke få det til at virke?!
Avatar billede supermand69 Nybegynder
31. januar 2004 - 11:55 #8
kuk kuk :)
Avatar billede supermand69 Nybegynder
04. februar 2004 - 17:48 #9
lukker...
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