Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mots vides et correspondance MySQL

Par défaut, les index MySQL FULLTEXT n'indexeront pas les mots de moins de 4 caractères (pour les tables MyISAM). Si vous souhaitez indexer des mots de 3 lettres, vous devez définir les ft_min_word_len variable système (ou innodb_ft_min_token_size pour InnoDB) à une valeur de 3 ou moins, puis redémarrez mysqld et reconstruisez votre table.

Par exemple, ajoutez ceci au [mysqld] section de votre fichier my.cnf :

ft_min_word_len=3

Redémarrez ensuite mysqld.

Exécutez ensuite cette commande pour reconstruire la table :

alter table `tbladvertstest` force;

Votre requête devrait maintenant fonctionner :

mysql > SELECT * 
    -> FROM `tbladvertstest` 
    -> WHERE MATCH (`SearchCompany`) AGAINST ('+"All Bar One"' IN BOOLEAN MODE) ;
+----+---------------+
| id | SearchCompany |
+----+---------------+
|  1 | All Bar One   |
+----+---------------+
1 row in set (0.00 sec)