Ver Mensaje Individual
  #32 (permalink)  
Antiguo 04/01/2011, 02:42
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 10 meses
Puntos: 300
Respuesta: Sistema de busqueda por selects

creo que mejor así:
Código MySQL:
Ver original
  1. SELECT     name1,     name2,     name3,     name4 ,     MATCH (name1, name2, name3, name4)
  2.  AGAINST ('palabra1 palabra2 palabra3 palabra4') Score
  3.  FROM     nombretutabla
  4.  WHERE     MATCH (name1,name2,name3,name4)
  5.  AGAINST('palabra1 palabra2 palabra3 palabra4')
  6.       ORDER BY Score
1) No olvidéis que en búsqueda natural no puede usarse ese '%' para indicar parte de cadena (como parece querer phpfan), sea la que sea, pues full-text en modo natural busca palabras completas. Si quieres buscar eso, tendrás que usar full-text en modo booleano y utilizar el asterisco para eso, y además sólo para el final de la palabra.
http://dev.mysql.com/doc/refman/5.5/...t-boolean.html
2) el propio full-text lleva implícito lo que queremos conseguir con OR. Si hay un sólo ejemplo lo encontrará.
3) La cadena la puedes conformar previamente en PHP con las palabras separadas por un espacio en blanco. No voy a escribir código PHP, pero eso es fácil.

phpfan, ¿por qué no nos proporcionas el archivo create table de tu tabla con algunos datos para insertar y hacer una búsqueda concreta? Es también posible que tengas pocos registros o que busques términos cuya frecuencia sea altísima, o que busques términos con menos de 4 caracteres. Hay una serie de restricciones para full-text, pero debemos saber lo que tienes y qué quieres buscar.

Última edición por jurena; 04/01/2011 a las 04:49