sql >> Databasteknik >  >> RDS >> Mysql

Mysql stoppa ord och matcha

Som standard kommer MySQL FULLTEXT-index inte att indexera ord som är kortare än 4 tecken långa (för MyISAM-tabeller). Om du vill indexera ord med 3 bokstäver måste du ställa in ft_min_word_len systemvariabel (eller innodb_ft_min_token_size för InnoDB) till ett värde av 3 eller lägre, starta sedan om mysqld och bygg om din tabell.

Till exempel, lägg till detta i [mysqld] avsnittet i din my.cnf-fil:

ft_min_word_len=3

Starta sedan om mysqld.

Kör sedan det här kommandot för att bygga om tabellen:

alter table `tbladvertstest` force;

Nu bör din fråga fungera:

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)


  1. Hur får man det sista fältet i en Mysql-databas med PHP?

  2. Växla mellan flera databaser i Rails utan att bryta transaktioner

  3. MySQL i Docker returnerar Servern begärde autentiseringsmetod okänd för klienten

  4. Ställ in korsning i MySQL:ett rent sätt