Om jag har en databas med 10 kolumner som man ska kunna söka i med en vanlig input ruta så har jag skrivit SQL frågan så här.
SQL = "Select * From tabell where falt1 LIKE '%" & sokord & "%' OR falt2 LIKE '%" & sokord & "%' OR falt3 LIKE '%" & sokord & "%' OR falt4 LIKE '%" & sokord & "%'"
ända upp till falt10..
Men nu fungerar det ju bara med ett ord.. om jag istället vill kanske skriva in "blå, bil" i sökrutan.. så vill jag att "blå" och "bil" ska vara oberoende av varandra. Kanske falt10 är "blå" och falt2 är "bil". Nu när jag skriver in "blå, bil" så får jag ju ingen träff.. därför vill jag splitta upp strängen när det är ett "," eller ett annat lämpligt tecken.
Men hur skriver jag SQL frågan isåfall? Det kan ju lika bra vara 4-5 ord som det ska sökas på.
jag hade nog gjort en split som du talar om och kanske köra en "standard" sträng som loopars igenom split:en och lägga in det i hela SQL frågan exmpel:
dim splitedWords
splitedWords = split(strSearchWord,",")
for i = 0 to ubound(splitedWords)
sql = sql & " falt1 like '%" &splitedWords(i) "%'...."
next
Måste få hjälp att skriva for loopen till denna grej.
Om jag ska söka på "Blåa bilar är snygga".
Hur skriver jag då for loopen om jag vill att sql frågan ska se ut så här:
falt1 like '%Blåa%' AND falt1 like '%bilar%' AND falt1 like '%är%' AND falt1 like '%snygga%' OR falt2 like '%Blåa%' AND falt2 like '%bilar%' AND falt2 like '%är%' AND falt2 like '%snygga%'
Alltså antingen falt1 eller falt2 måste innehålla alla de där orden, fast i databasen kan det ju stå "Snygga bilar är blåa".
Någon som är bra på detta? Har kört fast totalt hur jag ska skriva en for loop för att jag ska få frågan så där.
dim splitedWords
splitedWords = split(sokord," ")
for i = 0 to ubound(splitedWords)
sql = sql & " falt1 like '%" &splitedWords(i)&"%'"
next
Detta borde väl fungera? Ser ut att göra det iallafall :)
for i = 0 to ubound(splitedWords)
sql = sql & " falt1 like '%"&splitedWords(i)&"%'"
If i = ubound(splitedWords) Then
sql = sql & " OR"
else
sql = sql & " AND"
End If
next
for i = 0 to ubound(splitedWords)
sql = sql & " falt2 like '%"&splitedWords(i)&"%'"
If i = ubound(splitedWords) Then
sql = sql & " OR"
else
sql = sql & " AND"
End If
next
for i = 0 to ubound(splitedWords)
sql = sql & " falt3 like '%"&splitedWords(i)&"%'"
If i = ubound(splitedWords) Then
sql = sql & ""
else
sql = sql & " AND"
End If
next
137 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe