16. marts 2002 - 12:32Der er
11 kommentarer og 1 løsning
Hvor mange gennemløb laver en "Where" forespørgsel
Jeg har en databae i Accessog jeg vil gerne vide hvor mange gange den bliver løbet igennem hvis bruger en 'Where' commando. (Select * from names where Navn = 'Peter')
Uddybning: Forstil dig følgende database
ID Navn Beskrivelse 1 Peter Mikkelsen 2 Peter Mikkelsen 3 Peter Mikkelsen 4 Søren Hansen 5 Søren Hansen 6 Søren Hansen 7 Søren Hansen 8 Søren Hansen 9 Søren Hansen 10 Søren Hansen
Hvis jeg i denne databse gerne ville have et udtræk på alle der hed 'Peter' ville databasen så blive løbet igennem 1 gang eller 3 gange? Skal jeg præcisere det?
Yeps sådan er mit også. Det jeg mener er om selve SQL-forespørgslen (strSQL = "Select * from names where Navn = 'Peter'") starter forfra hver gang den støder på den adspurgte variable.
F.eks: "tralalal jeg er en lille SQL-forespørgsel og nu skal jeg finde alt med 'Peter. trallala Hej første ID 1 hedder dit Navn Peter? Jamen det gør det jo så gemmer jeg lige dig. Hejhej ID 2 hedder dit navn Peter? Jamen det gør det jo så gemmer jeg lige dig."
I mit fine eksemple forsætter den fra ID 2 efter den har fundet noget på ID1........Er det korrekt eller starter den i stedet forfra fra ID1.... Hmmm jeg tror jeg har svaret på mit eget spg. heh.
If the field is NOT indexed then it runs through the table and returns each record matching the criteria. If its indexed it runs through the index and returns the record matching the criteria. Why do you think it does it three time (for Peter)?
I think we are not think logical here! The Recordset HAS only th erecords containing peter ("Select * from names where Navn = 'Peter'")!!!!! so ALL records in the loop contain peter there are NONE which do NOT contain peter.
idet du afsendender en SQL-forespørgsel med en where... klausul på bør du se på det som at SQL opretter en ny temporær databasetabel med de rækker og felter der er specificeret i din forespørgsel. Det meste af tiden er det også præcis det SQL gør. men den forbeholder sig ret til at gøre tingene på hvad pokker måde den finder mest hensigstsmæddigt for en given forespørgsel. En proff SQL-implementering vil endda gemme lidt historik efter hver forespørgsel så den efterhånden kan lære sig selv at gøre tingene på den måde der er mest hensigsmæssig for lige DEN database med den måde den typisk bliver brugt.
Eller for at sige det på en anden måde: "Det rager ikke dig hvordan SQL gør tingene. Du skal bare være tilfreds med at få de data du beder om."
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.