Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/09/2005, 12:35
Bluesman74cl
 
Fecha de Ingreso: marzo-2003
Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 22 años, 2 meses
Puntos: 9
Optimizar una consulta sql

Estimados, tengo la siguiente estructura de BDD

Tabla kb_biblioteca
id_archivo Autonumerico
titulo Texto
archivo Texto

tabla Kb_keywords
id autonumerico
id_archivo int
keyword

por ejemplo si tengo un elemento con lo siguiente
id_archivo = 55
Titulo = "El problema de la caña de cerveza al siguiente día de la Borrachera"
Archivo = La_ Caña.doc

y las keywords son :
Cervezas, caña, borrachera
y luego tengo otro registro con lo siguiente

id_archivo = 120
Titulo = "Bares de Santiago"
Archivo = Bares.PDF
y las keywords son :
Cerveza, Bares, ron

la consulta que viene desde un input permite al usuario final ingresar todas las palabras que estime conveniente para buscar algun tema.. independiente de las palabras claves que estos tengan..
lo malo es que si le pongo por ejemplo, en el input

Cervezas, caña, borracheras

me trae el resultado solo de lo que calce con todas la palabras claves.

y lo que quiero es que si por ejemplo puse
Cervezas, caña, borracheras

me traiga los dos registros que calzaron de alguna forma con Cervezas que existe en los dos registros..

el código que tengo es el siguiente


Código:
    key  = request.form("keywords")
    arrKey= split(key,",")
	for i = 0 to ubound(arrKey)
	  key = trim(arrkey(i))
           sql = "select * from kb_keywords where keyword  like '%"&key&"%'"
           set res = conn.execute(sql)
	next

while not res.eof 

 if busqueda ="keyword" then
   sql = "select * from kb_biblioteca where id_archivo = "&res("id_tema")&" "
   set rs = conn.execute(sql)
    while not rs.eof
      response.write(rs("titulo"))
    rs.movenext
    wend
__________________
Buena Vida...
Francisco