Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Encontrar resultados con LIKE

Estas en el tema de Encontrar resultados con LIKE en el foro de Mysql en Foros del Web. Buenas, estoy realizando un buscador para encontrar valores en la base de datos. Si tengo el valor " asd " y el usuario introduce " ...
  #1 (permalink)  
Antiguo 20/04/2008, 10:24
Avatar de AbdelioR  
Fecha de Ingreso: septiembre-2006
Ubicación: Tarragona
Mensajes: 926
Antigüedad: 17 años, 6 meses
Puntos: 8
Encontrar resultados con LIKE

Buenas, estoy realizando un buscador para encontrar valores en la base de datos.

Si tengo el valor "asd" y el usuario introduce "as", lo encuentra bien ya que hago un "LIKE". Pero si el usuario introduce "asd blue" quiero que encuentre todos los valores que sean LIKE asd y todos los valores que sean LIKE blue.

¿Para ello tengo que separar el string y tratarlo yo o hay alguna manera automatica de hacerlo?

Gracias :)
  #2 (permalink)  
Antiguo 20/04/2008, 11:09
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: Encontrar resultados con LIKE

Si sólo vas a buscar dos palabras y no te interesa tener un índice de relevancia, tal vez te conviniera tratar el string, cortarlo mediante explode o algo parecido en tu programa y luego hacer las dos búsquedas con LIKE ... o con REGEXP
Pero si quieres que esté ordenado por relevancia (si has escrito 'blue asda', que primero te muestre los registros donde aparece blue asda, luego asda blue, luego blue y finalmente asda, por orden descendente) y que la máquina lo haga todo puedes crear índices FULLTEXT sobre el campo, pero teniendo en cuenta que asd y cualquier palabra que tenga tres caracteres o menos no lo encontrará (por eso te he puesto asda). Podrías cambiar para que buscara tres caracteres o menos, pero no se recomienda. Si vas a experimentarlo haciendo prueba con una base de datos, ten en cuenta que no te ofrecerá resultados si encuentra más de un 50%, es decir que si escribes en 5 registros el patrón de búsqueda o parte de él, debes insertar otros 6 donde no aparezca dicho patrón.

Última edición por jurena; 20/04/2008 a las 12:12
  #3 (permalink)  
Antiguo 20/04/2008, 16:44
Avatar de AbdelioR  
Fecha de Ingreso: septiembre-2006
Ubicación: Tarragona
Mensajes: 926
Antigüedad: 17 años, 6 meses
Puntos: 8
Re: Encontrar resultados con LIKE

Vale jurena, he optado por separar el string y hacer un LIKE con cada parte de la cadena.

Muchas gracias :)
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 05:49.