Söka med LIKE

ASP

4 svar · 238 visningar · startad av LordJens

Medlem sedan aug. 2000119 inlägg
Trådstart#1

Jag försöker göra en liten sökmaskin, som skall leta efter länkar i en databas. Jag använder följande SQL-sats för att få fram resultaten:

SokRes = "SELECT * FROM links WHERE namn LIKE '"& Request.Form("sok") &"'"

Sökningen fungerar fint så länge sökordet och posten i databasen är identiska. Borde det inte med LIKE räcka med att en del är lika?
T.ex. Jag vill att om man söker efter "webForum", så skall man även hitta "webForum & webAvis". Hur?

Medlem sedan juni 200032 967 inlägg
#2

du måste lägga in wildcards ju.

SokRes = "SELECT * FROM links WHERE namn LIKE '%"& Request.Form("sok") &"'%"

like utan wildcards är samma sak som =.

Medlem sedan aug. 2000119 inlägg
#3

ok, men då fick jag:

Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i frågeuttrycket 'namn LIKE '%webforum'%'

Now what?

Medlem sedan juni 200032 967 inlägg
#4

du har en apostrof precis efter webforum, ska den vara där?`

om du skall ha apostrofer i strängar i sql-frågor måste du escape:a dem.

SokRes = "SELECT * FROM links WHERE namn LIKE '%"& replace(Request.Form("sok"),"'","''") &"'%"

mvh,

Medlem sedan aug. 2000119 inlägg
#5

Ok, nu fungerar det. Det var ett ' som var på fel ställe.

Använder nu koden:

   SokRes = "SELECT * FROM links WHERE namn LIKE '%"& Request.Form("sok") &"%'"

thx.

750 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
622 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
620 ms — ändringar (db)