Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/08/2008, 13:58
scorm
 
Fecha de Ingreso: julio-2008
Mensajes: 85
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Concatenar una consulta a base de datos - match against t LIKE

Like lo uso porque parece que Match ... Against no funciona del todo bien para una sola palabra.
Pero mi problema es que dependiendo de las columnas de la tabla en las que quiera buscar el usuario, la consulta sql será diferente. Por ejemplo si se quiere buscar solo por titutlo y descripcion la consulta sería:

"SELECT *, MATCH (title,description) AGAINST ('$buscar') AS puntuacion FROM tabla WHERE MATCH (title,description) AGAINST ('$buscar' IN BOOLEAN MODE) ORDER BY puntuacion DESC"

Si el usuario quiere buscar solo en el titulo sería:

"SELECT *, MATCH (title) AGAINST ('$buscar') AS puntuacion FROM tabla WHERE MATCH (title) AGAINST ('$buscar' IN BOOLEAN MODE) ORDER BY puntuacion DESC"

Todo esto es aparentemente, porque realmente, como en mi tabla he creado un índice FULTEXT donde englobo los tres campos (titulo descripcion y palabras clave), las consultas que te he puesto me fallan.

¿ALguien sabe cómo debería ponerse el índice fulltext? ¿o si lo que está mal es la consulta?

Otro problema es que hay otro campo por el que querría dar opción a búsqueda, pero que está en otra tabla. ¿Se pueden concatenar consultas para que se muestren los resultados de la busqueda en la tabla uno y en la dos? Ésto lo considero más secundario porque podría crear una tabla que tuviera información de los cuatro campos duplicada, y hacer la búsqueda es ésta tabla. (aunque es un poco cutre).

Alguna idea?
Muchas gracias