Pruebate este código que te pongo:
Código:
<%
session("vartemactiveuser")="ciencia"
response.write construyesql&"<BR>"
session("vartemactiveuser")="ciencias aplicadas"
response.write construyesql&"<BR>"
session("vartemactiveuser")="mecanica aplicada a la robotica"
response.write construyesql&"<BR>"
Function construyesql
Dim aux, i, strconn, cadena
cadena=session("vartemactiveuser")
'Si quieres omitir palabas poco significativas como 'a' 'la', etc usa
'replace(cadena,"a","")
'replace(cadena,"la","")
strconn="SELECT tema FROM registrousuarios WHERE "
aux=""
For i=1 to len(cadena)
if mid(cadena,i,1)<>" " then
aux=aux&mid(cadena,i,1)
Else
if aux<>"" then
strconn=strconn&"(tema LIKE '%"&aux&"%') OR "
aux=""
End if
End if
Next
strconn=strconn&"(tema LIKE '%"&aux&"%')"
construyesql=strconn
End Function
%>
Te lo he hecho un poco a lo bruto, pero funciona.
La idea es separar cada una de las palabras de un tema e ir construyendo la sentencia SQL con un LIKE de cada una de las palabras.
Él código que te he puesto:
session("vartemactiveuser")="ciencia"
response.write construyesql&"<BR>"
session("vartemactiveuser")="ciencias aplicadas"
response.write construyesql&"<BR>"
session("vartemactiveuser")="mecanica aplicada a la robotica"
response.write construyesql&"<BR>"
Produce el siguiente resultado:
SELECT tema FROM registrousuarios WHERE (tema LIKE '%ciencia%')
SELECT tema FROM registrousuarios WHERE (tema LIKE '%ciencias%') OR (tema LIKE '%aplicadas%')
SELECT tema FROM registrousuarios WHERE (tema LIKE '%mecanica%') OR (tema LIKE '%aplicada%') OR (tema LIKE '%a%') OR (tema LIKE '%la%') OR (tema LIKE '%robotica%')
Con lo que sólo tienes que cargar el resultado de la función en una variable y hacerle un execute.
No sé si te servirá de algo o la he liado más....