sql >> Database teknologi >  >> RDS >> Mysql

Mysql stop ord og match

Som standard vil MySQL FULLTEXT-indekser ikke indeksere ord, der er kortere end 4 tegn lange (for MyISAM-tabeller). Hvis du vil indeksere ord på 3 bogstaver, skal du indstille ft_min_word_len systemvariabel (eller innodb_ft_min_token_size for InnoDB) til en værdi på 3 eller lavere, genstart derefter mysqld og genopbygg din tabel.

Føj for eksempel dette til [mysqld] sektion af din my.cnf-fil:

ft_min_word_len=3

Genstart derefter mysqld.

Kør derefter denne kommando for at genopbygge tabellen:

alter table `tbladvertstest` force;

Nu skulle din forespørgsel virke:

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. Hvordan opretter man forbindelse til ekstern Oracle DB med PL/SQL-udvikler?

  2. Hvordan afgør jeg, om jeg har uforpligtende skrivninger i en MySQL-transaktion?

  3. Hvordan får man et korrekt dump ved hjælp af mysqldump og single-transaction, når DDL bruges på samme tid?

  4. Hvordan søger man efter en bestemt værdi i alle tabeller (PostgreSQL)?