08. oktober 2003 - 22:07Der er
6 kommentarer og 1 løsning
Query HJÆLP til søgning i database efter 2 eller flere ord
Fra en form fås keyword (fra search field): hvis det består af flere ord(tekst-string) skal denne tekst-string deles op i enkelte ord, som bruges til at generere keyword1, keyword2 and so on
F.ex: Det er skide svært deles op til keyword1 = Det keyword2 = er and so on
strSQL = strSQL & " OR (beskrivlink LIKE '%" & strKeyword1 & "%')" strSQL = strSQL & " OR (beskrivlink LIKE '%" & strKeyword2 & "%')" strSQL = strSQL & " OR (beskrivlink LIKE '%" & strKeyword3 & "%')" strSQL = strSQL & " OR (beskrivlink LIKE '%" & strKeyword4 & "%')" sv. Hvordan skrives koden til dette??
er det noget med en ASP-funktion: 'Split the terms on spaces Dim termsArray termsArray = split(strKeywords," ") - og hvis ja: hvordan fås dette array lind i SQL-strengen????? vh BM
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Arr_Ord = Split(strKeywords, " ") If UBound(Arr_Ord) > 0 Then For i = 0 To UBound(Arr_Ord) strSQL = strSQL & " Or beskrivlink Like '%" & Arr_Ord(i) & "%'" Next strSQL = "Select * From Tabel Where" & Mid(strSQL, 4) End If
det ser lovende ud - lige en ting mere: hvis nu OR skal skiftes ud med AND, hvordan skriver du så SQL-strengen - f.eks med Request("or")og Request("and")
If Len(strKeyword) = 0 Then ' Hvis der ikke er skrevet i feltet strKeyword = "Skriv i feltet" Response.Write("<b>Du skal skrive noget i søgefeltet</b><br>") else
Response.Write ("<b>Følgende profiler blev fundet</b>:<br><br>") ' Hvis der er skrevet i feltet Arr_Ord = Split(strKeyword, " ") If UBound(Arr_Ord) > 0 Then For i = 0 To UBound(Arr_Ord) strSQL = strSQL & " and navn Like '%" & Arr_Ord(i) & "%'" Next strSQL = "Select * From komp Where " & Mid(strSQL, 4) End If end if Response.Write (strSQL)
giver følgende melding med keyword=bm er sød:
Select * From komp Where d navn Like '%bm%' and navn Like '%er%' and navn Like '%sød%'
Det er sidste tegn i "anD". Da "And" er ét tegn længere end "Or", skal du nu kalde mid-funktionen med:
strSQL = "Select * From komp Where " & Mid(strSQL, 5)
Synes godt om
Ny brugerNybegynder
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.