Avatar billede arrrh Nybegynder
16. marts 2002 - 12:32 Der 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?

:: Someone who just lost his password... ::
Avatar billede fuldstop Nybegynder
16. marts 2002 - 12:44 #1
Kan evt. gøres med følgende, så gennemløbes databasen engang og alle med Peter som Navn udskrives.(er ikke testet måske nogle få syntax fejl)

strSQL = "Select * from names where Navn = 'Peter'"
Set rs = Conn.Execute(strSQL)
Do
Response.Write rs("Navn") & " " & rs("Beskrivelse")

rs.MoveNext

Loop While Not rs.EOF
Avatar billede terry Ekspert
16. marts 2002 - 13:01 #2
Once!
Avatar billede arrrh Nybegynder
16. marts 2002 - 13:01 #3
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.
Avatar billede arrrh Nybegynder
16. marts 2002 - 13:02 #4
Terry du vinder :)
Avatar billede terry Ekspert
16. marts 2002 - 13:03 #5
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)?
Avatar billede fuldstop Nybegynder
16. marts 2002 - 13:04 #6
Finder den f.eks 'Peter' første gang i ID3 (rs3), fortsætter den fra ID3 og går vidre til ID4 (rs4) og checker der osv.
Avatar billede fuldstop Nybegynder
16. marts 2002 - 13:07 #7
hhhmmmmmmmmm.
Avatar billede terry Ekspert
16. marts 2002 - 13:07 #8
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.
Avatar billede jakoba Nybegynder
01. april 2002 - 16:35 #9
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."

mvh JakobA
Avatar billede arrrh Nybegynder
01. april 2002 - 16:44 #10
"Det rager ikke dig hvordan SQL gør tingene. Du skal bare være tilfreds med at få de data du beder om."

Jamen dog jamen dog.... jeg prøvede jo bare at finde en forskel mellem Access og MySQL... suk.
Avatar billede jakoba Nybegynder
01. april 2002 - 17:03 #11
Ok, der sku ha været :-)) efter.
Avatar billede arrrh Nybegynder
03. april 2002 - 11:13 #12
Heheeh :-))
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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