J'ai un problème assez curieux puisque j'ai vu que c'était possible de la rechercher sur plusieurs colonnes FULLTEXT d'une table en le spécifiant dans le MATCH.
Quand je fais comme requete:
SELECT * FROM labase WHERE MATCH (col1,col2,col3) AGAINST ('leoulesmotsrecherché');
Il me dit
Can't find FULLTEXT index matching the column list
Alors que si je met col1 seulement ça marche, col2 aussi et col3 aussi.
Mais pas toutes à la fois alors que même la doc sur mysql.com dit que c'est possible !
J'ai essayé aussi depuis phpmyadmin directement et j'ai la même erreur, on dirait qu'il recherche la colonne "col1,col2,col3" sans différencier chacune grace à la virgule !
Tu dois indexer les champs sur lesquels porte la recherche :
ALTER TABLE `nom_de_la_table` ADD FULLTEXT (
`champ1`, `champ2`
)
Si la requête porte sur plusieurs champs, il y a fort à parier qu'il faut les spécifier TOUS dans l'index (un index peut indexer plusieurs champs). Et je pense qu'il faut aussi faire attention à l'ordre dans lequel on les mets.
L'index FULLTEXT ne fonctionne pas avec des tables InnoDB, uniquement des tables MyISAM.
C'est une fois de plus juste, il est important de bien faire le fulltext sur les champs voulu en une seule fois, et non un fulltext indépendamment. un fulltext est alors créé groupant l'ensemble des champs voulus.