07. december 2012 - 12:42Der er
7 kommentarer og 1 løsning
Holde tabel på 10 rækker
Jeg skal lave en highscore på 10. Jeg ønsker ikke at databaseb indeholder mere end de ti højeste score. Så hver gang der tilskrives en score/række mere, skal der ryddes op, så der kun er ti rækker.
Men hvordan kan en sql se ud der finder de ti rækker med højeste score og sletter de resterende?
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
Det var ikke det du spurgte om, men jeg kan ikke dy mig for at spørge hvorfor det er vigtigt at begrænse database tabellen til ti rækker. Er det på grund af 'performance?' Jeg vil ikke tro du kan mærke forskel på om tabellen har 10 rækker eller 1000 rækker. Hvis du har mere end 10 rækker i tabellen får du de ti højeste rækker trukket ud ved en forespørgsel såsom SELECT * FROM myscores ORDER BY score DESC limit 10.
Men hvis du vil rydde op i tabellen myscores kan det gøres ved at selecte de ti højeste scores, flytte disse til en anden tabel, såsom myscores2, tømme myscores, flytte tilbage fra myscores2 til myscores, og tømme myscores2. Såsom (ikke tested):
INSERT INTO myscores2 SELECT * FROM myscores ORDER BY score DESC limit 10æ TRUNCATE myscores; INSERT INTO myscores SELECT * FROM myscores2æ TRUNCATE myscores2;
Grunden er, at jeg ikke ønsker at tabellen vokser i det uendelige. Det er også unødvendigt at have mere end ti, når der kun skal vises ti.
Men din sql streng kan jeg jo prøve at bruge, og så kører den når tabellen er blevet en hvis størrelse. Det må jo kunne automatiseres på en eller anden måde.
Det er jo ikke bare at slette en række. Det skal være den med laveste score. Hvad nu hvis der bliver 12 rækker. Så er der jo to der skal slettes. Hvordan finder man dem?
erikjacobsen: Jeg vil nok vælge den der sidst tilføjede, tror jeg.
mozaer1973, hvad er din videre hensigt med dette spørgsmål? Jeg foreslog en løsning som du sagde du ville prøve at bruge. Hvordan faldt det ud? Hvordan forholder du dig til de andre indlæg? Kom ind og fortæl hvad der videre skal ske, eller luk spørgsmålet (efter at have inviteret de svar du har brug for, du har svar fra mig.)
Nå, den slettede alt det jeg lige skrev. gider ikke skrive det igen. Men dit er var bedste bud.
Synes godt om
Ny brugerNybegynder
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.