Behöver hjälp med att få till en sql fråga som jag inte lyckas med.
Jag har en databas som innehåller modell och fabrikat och vill med endast en inparameter till sql frågan söka i båda fälten (tex. söka på "volvo v40").
Fabrikat innehåller ju "volvo" och Modell "v40".
Söker man dock bara på volvo ska den hitta alla volvo och söker man på v40 skall den hitta alla v40.
SELECT
OL.Fabrikat AS Fabrikat,
OL.Modell AS Modell,
FROM
Objekt AS OL
WHERE
OL.Modell LIKE '% $SokText %' OR
OL.Modell LIKE '$SokText %' OR
OL.Modell LIKE '% $SokText' OR
OL.Modell LIKE '$SokText' OR
OL.Fabrikat LIKE '$SokText'
Detta var så långt jag lyckades.. Kanske är någon som kan hjälpa mig?
Nu fungerar det ju när man söker på antigen "volvo" eller "v40" men det blir fel när man söker på "volvo v40".
Jag kanske skulle göra så här: Konstruera WHERE-delen utanför DBMS och skicka sedan den som parameter till SQL-frågan. Så här typ:
whereSql = "WHERE 1 = 1"
words = split(searchString, " ")
for each word in words
if word != ""
whereSql = whereSql + " AND ("
whereSql = whereSql + " OR OL.Modell LIKE '%" + word + "%'"
whereSql = whereSql + " OR OL.Fabrikat LIKE '%" + word + "%'"
whereSql = whereSql + ")"
end
end
...
exec 'SELECT ... FROM ... ' + whereSql