Foros del Web » Programando para Internet » ASP Clásico »

SQL Like %

Estas en el tema de SQL Like % en el foro de ASP Clásico en Foros del Web. Tengo un campo memo y quiero buscar una palabra dentro del campo memo, para eso hago esta sentencia sql: SQL="SELECT * FROM Noticias WHERE (titulo ...
  #1 (permalink)  
Antiguo 11/11/2004, 16:31
Avatar de deccweb  
Fecha de Ingreso: febrero-2003
Ubicación: Mataro
Mensajes: 365
Antigüedad: 22 años, 2 meses
Puntos: 0
SQL Like %

Tengo un campo memo y quiero buscar una palabra dentro del campo memo, para eso hago esta sentencia sql:

SQL="SELECT * FROM Noticias WHERE (titulo like '%" & q & "%' OR noticia like '%" & q & "%' OR mas like '%" & q & "%') AND mostrar=0 ORDER BY fecha DESC, id DESC"


Pero habria alguna forma de que me cogiera solo la palabra? Haber si me puedo explicar. Ahora mismo cuando hago la busqueda, si busco texto el resultado sera:

"Esto es un textoraro"

Pero no habria ninguna forma de cuando busque texto que no me salga:

"Esto es un textoraro"

Ya que texto esta continuado por mas vocales?
__________________
Calle17.net

edgargranados.es
  #2 (permalink)  
Antiguo 11/11/2004, 17:29
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
De manera muy... pedorra... se me ocurre que antes de la sentencia SQL le concatenes a la variable 'q' un espacio adelante y uno atrás:

q = " " & q & " "

De esta manera encontrará Esto es un texto raro pero no Esto es un textoraro.

Lo pedorro es que si la palabra buscada es la primera (Esto, en el ejemplo) no la encontrará. Si es la íltima, lo mismo. Si la palabra buscada tiene un signo de puntuación como una coma, un punto, un puntoycoma, etc luego de ella; tampoco la encontrará.

Una posible solución es que mediante una función de agregado de SQL le reemplaces al campo a buscar cualquier signo de puntuación por un espacio y le agregues al inicio del campo y al final un espacio.

Seguro existe otra manear de hacerlo, pero no la sé
__________________
...___...
  #3 (permalink)  
Antiguo 11/11/2004, 17:37
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
La otra sería crearte un array a partir de este campo, utilizando como separador los espacios " " para después buscar índice por índice la cadena en este array, el tema es en el performance, no se hasta cuantos índices podría tener...

Otra más no se me ocurre, pero seguro que la hay!

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:27.