Jag söker igenom ett antal fält i några olika tabeller efter ett ord, bl a i fält som innehåller längre texter. Den var en rackarns lång rad du fått till... :-) Jag lät Access formulera SQL-satsen... - annars hade jag slagit knut på hjärnan. :) Det funkar inte... Testa denna Testade att asp-fiera den åt digProblem med SQL-sats
Om jag då använder denna SQL-satsen...
SQL1 = "SELECT * FROM Companies INNER JOIN News ON Companies.compId=News.compId WHERE (((Companies.compName)='%" & word & "') OR ((News.title) LIKE '%" & word & "%') OR ((News.text) LIKE '" & word & "%')) ORDER by date DESC"
...och jag t ex söker på IMS så får jag ju även träffar om ordet AIMS förekommer. Hur undviker jag detta?
Skriver jag - LIKE '" & word & "%' - så får jag ju bara med ordet om det står först i meningen/texten...
Sv: Problem med SQL-sats
När du skriver
LIKE '" & word & "%'
så är du på rätt väg, men du bör kombinera (OR) denna med
LIKE ' " & word & "%'
dvs de fall då det finns ett mellanslag framför ordet så får du med de flesta kombinationer.
Problemet är att om man slarvar så kan det i söktexten stå
Bla bla.Ims bla bla
med andra ord man har glömt mellanslaget efter punkten vilket då blir ytterligare en variant att söka efter.
Svaret är alltså att först definiera vilka kombinationer man vill kunna hitta, men du får träff i de flesta fall om du söker med eller utan inledande mellanslag.
Lycka till!
// JohanSv:Problem med SQL-sats
Misstänkte att det var så. Det betyder att jag även skulle behöva lägga till möjligheten att det kommer en punkt efter... eller ett frågetecken efter...eller inget alls före...eller... Puh!Sv: Problem med SQL-sats
Om jag skriver såhär..
Dim word
word = Request.Form("word")
SQL1 = "SELECT * FROM Companies INNER JOIN News ON Companies.compId=News.compId" WHERE (((Companies.compName)='" & word & "') OR ((News.text) LIKE ' " & word & "%')) ORDER by date DESC"
..så borde den väl hitta ordet när det finns ett blanksteg före?? Men det gör den inte. Varför?
Den här satsen i Access verkar funka, men hur "översätter" jag den till en SQL-sträng i asp-koden?
SELECT *
FROM Companies INNER JOIN News ON Companies.compId = News.compId
WHERE (((Companies.compName)="ims")) OR (((News.title) Like "* ims*")) OR (((News.text) Like "* ims*"));Sv:Problem med SQL-sats
SELECT *
FROM Companies INNER JOIN News ON Companies.compId = News.compId
WHERE Companies.compName='ims' OR News.title LIKE '% ims%' OR News.text LIKE 'ims%'
// MvH Björne
Sv: Problem med SQL-sats
<code>
SQL1 = "SELECT * " & _
"FROM Companies INNER JOIN News ON Companies.compId = News.compId " & _
"WHERE Companies.compName='" & word & "' " & _
"OR News.title LIKE '% " & word & "%' OR News.text LIKE '" & word & "%'"
</code>
// MvH Björne