24. januar 2001 - 22:01Der er
26 kommentarer og 1 løsning
Søgning på flere kolonner med SQL
Jeg har en SQL kode der skal søge på en streng i to tabeller i en database.
den søger i tab1 og tab2 hvor der findes henholdsvis id1, kol1 og id2, kol2.
hvis den søger efter strengen \"hej\" i kol1 og kol2, og id1 = id2, altså hvis kol1 = \"hej\" og kol2 = \"hej\", så ville den normalt finde 2 poster, men SQL koden skal laves så den kun henter en.
F.eks.:
-------------------- -------------------- | id1 | kol1 | | id2 | kol2 | -------------------- -------------------- | michael | hvor | | per | hvad | | jens | heja | | michael | hej | | per | hvem | | jens | haja | -------------------- --------------------
Søgeningen efter stregen \"hej\" skulle så gerne resultere i at finde:
----------- | id | ----------- | michael | | jens | -----------
Kan nogen lave en sådanne SQL...?
Jeg kan komme med et lille eksempel... det virker dog ikke. :)
tabel1 as tab1,tabel2 as tab2 WHERE ( (instr(lcase(tab1.kol1),\'hej\')>0) or (instr(lcase(tab2.kol2),\'hej\')>0))
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
he he, du modskriver egentlig lidt dine ønsker igennem din forklaring, først skriver du at den kun skal returnere 1 post, men senere beskriver du at den korrekte sql gerne skulle levere 2 poster, he he..........?!?!?!??
lp:> jeg mener at Access (som den eneste) godt kan tage * (asterisk) men at hvis du vil være sikker på kompatabilitet mellem databaser skal man bruge %.
hmmm, det må være noget nyt i access 2000 for det virkede ikke da jeg engang tilbage i oldtiden rodede med en access 97 db.........hmmmm, microsoft når det er værst!
jeg kan heller ikke finde noget dokumentation på dette, dog at access benytter # som enkelt-karakters wildcard fx: like \'Ny#\' som kan returnere Nyt, Nye etc, men ikke Nyhed.....andre databaser benytter _ således: like \'Ny_\'
Når jeg søger på f.eks. \"hvad\" får jeg \"michael\",\"jens\",\"per\" som resultat, altså de tre navne i tab1.
Meget mystisk!
Jeg bruger access, men det virker ikke med *??? Det virker lidt med %, men så laver den bare det underlige nummer... kunne den omformuleres på en anden måde?
det kunne være man skulle prøve at joine dem.....?? nej jeg ved det sq ikke, det er umuligt at sætte sig ordentligt ind og jeg er da sikker på at tdau hjælper dig med denne, ik :-) desuden skuffer du mig tdau.....tjek din icq og mine details.....så vil du forstå....:-)
bodekaer -> den er svinget lige ud fra ærmet, men jeg kan ikke se der er nogle fejl.....lcase() funktionen kan dog undgåes og er spildkode da du laver en like som er case insensitive....
Hvis jeg forstår jer ret, får bondekaer det til at virke. Men får bare for mange recordsets frem, kan det ikke løses med DISTINCT i hans SELECT komando ??
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.