Mysql FULLTEXT поиск нескольких слов
Я никогда не слышал прямого ответа на этот вопрос, мне просто нужно, чтобы FULLTEXT искал пару столбцов с несколькими словами "Имя Фамилия"
$sql = mysql_query("SELECT * FROM
patient_db
WHERE MATCH ( Name, id_number )
AGAINST ('% $term %' IN BOOLEAN MODE);");
Но он не может выполнить запрос, если я ввешу здесь несколько слов.
Ответы
Ответ 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
в вашем матче?