Mysql
 sql >> база данни >  >> RDS >> Mysql

Подобряване на Mysql Match срещу търсене

Можете да направите точно това, което искате, като съпоставите IN BOOLEAN MODE и използвайки * оператор.

Например:

 ... MATCH(thing) AGAINST ('+educat*' IN BOOLEAN MODE)...

+ казва на съвпадението да включва само стойностите на thing които съдържат съвпадащия термин, който в този случай е всички индексирани стойности, започващи с „educat “ (вижте тук за това как работи булевият режим в детайли).

Като настрана, търсенето в пълен текст в MySQL не индексира думи от 3 или по-малко знака по подразбиране, така че подозирам, че съвпадението ви с "edu" не работи по начина, по който си мислите. Вижте стойността на вашия ft_min_word_len променлива, за да видите дали случаят е такъв.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да актуализирам часовата зона за времевите марки (created_at и updated_at), управлявани от Laravel Eloquent?

  2. Проблеми с изявлението за избор на MySQL и Python

  3. Как да използвам псевдоними в математически оператори в SQL?

  4. Php формулярът се проверява, когато стойността на квадратчето за отметка в масива mysql заявка?

  5. Как мога да променя индексиран varchar(255) от utf8 на utf8mb4 и да остана под максималната дължина на ключа 767?