Подтвердить что ты не робот

Mysql FULLTEXT поиск нескольких слов

Я никогда не слышал прямого ответа на этот вопрос, мне просто нужно, чтобы FULLTEXT искал пару столбцов с несколькими словами "Имя Фамилия"

$sql = mysql_query("SELECT * FROM 
                    patient_db 
                    WHERE MATCH ( Name, id_number )
                    AGAINST ('% $term %' IN BOOLEAN MODE);");

Но он не может выполнить запрос, если я ввешу здесь несколько слов.

4b9b3361

Ответ 1

$sql = mysql_query("SELECT * FROM 
         patient_db WHERE 
         MATCH ( Name, id_number ) 
         AGAINST ('+first_word +second_word +third_word' IN BOOLEAN MODE);");

и если вы хотите выполнить точный поиск:

$sql = mysql_query("SELECT * 
                  FROM patient_db 
                  WHERE MATCH ( Name, id_number ) 
                  AGAINST ('"exact phrase"' IN BOOLEAN MODE);");

Ответ 2

SELECT * 
FROM patient_db 
WHERE MATCH ( Name, id_number ) 
      AGAINST ("Firstname Lastname" IN BOOLEAN MODE);

Важны двойные кавычки. Это буквально выглядит фразой "Имя Фамилия". Вам не нужны процентные знаки.

Если вы ищете "Firstname blahblahblah Lastname blahblah", предложение AGAINST() должно выглядеть следующим образом:

AGAINST ('+Firstname +Lastname' IN BOOLEAN MODE);

Посмотрите документы MySQL по полнотекстовому поиску для получения дополнительной информации.

Другое дело: почему у вас есть столбец id_number в вашем матче?