Avatar billede html_wizard Nybegynder
29. juni 2006 - 10:23 Der er 4 kommentarer og
1 løsning

SQL ASP count and delete entries from table

Jeg henter 100 entries fra en tabel. (Der er omkring en million entries i tabellen). Når WHERE erklæringen er overholdt udtrækkes ca 150 entries, jeg vil så vise de første 100 og slette de sidste 50 fra database tabellen hvor WHERE erklæringen er overholdt -100.

Men hvordan ???

Et eksempel (som den er nu):
SELECT * FROM tabel WHERE a = 1 AND b = 0 ORDER BY DATE LIMIT 100
Avatar billede kongfjong Nybegynder
29. juni 2006 - 10:46 #1
Vil du slette de sidste 50 entries samtidigt med at du trækker de første 100 ud?

Ellers kan du bruge den ovenstående forespørgsel til at trække de første 100 ud og derefter smide følgende forspørgsel:

DELETE * FROM tabel WHERE a = 1 AND b = 0 ORDER BY DATE DESC LIMIT 50

Det der sker er at du i din første forespørgsel sorterer i standard-sorteringen, ASC, som, med numeriske værdier f.eks., sorterer fra 1 til 150.

Ved at sortere i omvendt rækkefølge med DESC, sorterer du altså fra 150 til 1 og kan derved tage de øverste 50 af den sortering væk fra tabellen:)
Avatar billede kongfjong Nybegynder
29. juni 2006 - 10:53 #2
Alternativt, hvis du ikke kender det præcise antal entries, men det ligger omkring 150, lave en forespørgsel der sorterer på præcis samme måde som din egen, men derpå bruge det argument til LIMIT der fortæller hvor mange rækker der skal springes over før du sletter  og så sætte antallet der skal slettes til f.eks. 100 så du er sikker på at få slettet de sidste cirka 50 entries:

DELETE * FROM tabel WHERE a = 1 AND b = 0 ORDER BY DATE LIMIT 100, 100
Avatar billede html_wizard Nybegynder
29. juni 2006 - 10:56 #3
Taang! Det må være swaret.. God problemknusning svaret lå jo lige der. Nummer to er helt klart nummer eet!
Avatar billede kongfjong Nybegynder
29. juni 2006 - 10:59 #4
Godt at høre;)
Avatar billede kongfjong Nybegynder
30. juni 2006 - 08:08 #5
Accepterer du mit svar?;)
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
Computerworld tilbyder specialiserede kurser i database-management

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