Avatar billede kledal Nybegynder
15. januar 2003 - 14:52 Der er 8 kommentarer og
1 løsning

SQL sætning

hvis man har flere søgekriterier i samme tabel??

SQL = "select id from beskeder where (til = '"& søgeord1 &"' and trin = "& søgetrin1 &") and (til = '"& søgeord2 &"' and trin = "& søgetrin2 &") and (til = '"& søgeord3 &"' and trin = "& søgetrin3 &") order by id"
Set ObjRs = ObjConn.Execute(SQL)

hvordan gør man det??
Avatar billede arnvig Nybegynder
15. januar 2003 - 14:56 #1
øhh, lige som du har gjort det her
Avatar billede arnvig Nybegynder
15. januar 2003 - 14:58 #2
eksempel

select *
from table
where kol1 = kol2
and kol3 = "Værdi"
and ( kol4 = 1 or kol5 = 8 or kol6 in(2,3,4))
Avatar billede arnvig Nybegynder
15. januar 2003 - 15:00 #3
hvad er problemet ?
Avatar billede kledal Nybegynder
15. januar 2003 - 15:11 #4
problemet er at søgekriterierne hænger sammen 2 og 2.
Og man kan ikke have flere paranteser i SQL-sætningen (dette ved jeg ikke, men det giver ingen resultater som jeg gør det ovenover!!!) og da jeg har 3 søgeord, med hver 2 kriterier, gør det det lidt svært at søge, da jeg ikke kan parre kriterierne med paranteser!

mvh kledal
Avatar billede mrs Nybegynder
15. januar 2003 - 15:45 #5
kan du så ikke skrive or i stedet for and, så hænger de vel ikke sammen
Avatar billede arnvig Nybegynder
15. januar 2003 - 15:48 #6
Måske skal du bare have OR imellem hvert par søgekriterier istedet for AND
hvis man kigger på dit sql, vil du jo have at til skal være lig Søgeord1 og Søgeord2 på en gang.

Kan du beskrive hvordan din where clause skulle se ud rent logisk f.eks

(til = "søgord1" and trin = "søgtrin1") OR
(til = "søgord2" and trin = "søgtrin2") OR
(til = "søgord3" and trin = "søgtrin3")
Avatar billede kledal Nybegynder
15. januar 2003 - 16:02 #7
nej desværre ikke. For begge dele skal passe! :-)
Det er jo netop det der er problemet. for det andet kan man godt. lad os sige at vi har 6 ting i tabellen de hedder :
id til trin
1  kk  3
2  ki  2
1  ke  3
1  ko  2
2  kq  3
1  kq  3

så skal jeg have vist dem hvor (til = 'ko' og trin = '2') og (til = 'kq' og trin = '3') og (til = 'ke' og trin = '3') hvilket jo vil give at jeg får id = 1, da id = 1 opfylder alle kriterierne!!

mvh kledal
Avatar billede arnvig Nybegynder
15. januar 2003 - 17:24 #8
nu forstår jeg problemet.

så skal dit SQL se således ud:

select distinct id
from beskeder a
where (a.til = "søgord1" and a.trin = "søgtrin1")
and exists (select id
            from beskeder b
            b.til = "søgord2" and b.trin = "søgtrin2"
            and a.id = b.id)
and exists (select id
            from beskeder c
            c.til = "søgord3" and c.trin = "søgtrin3"
            and a.id = c.id)
Avatar billede kledal Nybegynder
16. januar 2003 - 10:08 #9
super duper du havde glemt et par WHERE clauses, men det fandt jeg ud af!
tak for hjælpen :-)
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
Kurser inden for grundlæggende programmering

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