Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:Dlaczego wynik zawsze wynosi 1 w pełnym tekście?

TRYB BOOLEAN obsługuje tylko odpowiedzi binarne, oznacza 0 lub 1, niezależnie od tego, czy szukany ciąg pojawia się w kolumnie, czy nie. Aby uzyskać wynik dziesiętny w celu obliczenia wagi, musisz użyć funkcji dopasowania przeciw w indeksowanych kolumnach.

Możesz użyć trybu logicznego w ten sposób, aby uzyskać swoją wagę:

SELECT *, ((1.3 * (MATCH(column1) AGAINST ('query' IN BOOLEAN MODE))) +
(0.6 * (MATCH(column2) AGAINST ('query' IN BOOLEAN MODE)))) AS relevance
FROM table WHERE ( MATCH(column1,column2) AGAINST
('query' IN BOOLEAN MODE) ) ORDER BY relevance DESC

Zaletą trybu logicznego jest to, że można go używać na kolumnach nieindeksowanych, ale tylko z wynikiem 0,1, tryb nielogiczny zwraca wynik dziesiętny, ale można go zastosować tylko do kolumn indeksowanych... zobacz także tutaj .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa funkcja WEIGHT_STRING() w MySQL

  2. tłumaczenie mysql_fetch_array na PDO::FETCH_NUM

  3. Wyzwalacz MySQL:aktualizacja po osiągnięciu określonej daty i godziny

  4. Jak używać NHibernate zarówno z serwerem MySQL, jak i serwerem Microsoft SQL 2008

  5. Jak ustawić <option selected=selected> ustawioną przez MySQL i PHP?