我从来没有真正听过这个问题的直接答案,我只需要FULLTEXT搜索几个列,其中包含多个单词“Firstname Lastname”
$sql = mysql_query("SELECT * FROM
patient_db
WHERE MATCH ( Name, id_number )
AGAINST ('% $term %' IN BOOLEAN MODE);");
但如果我在这里输入多个单词,则无法运行查询。
答案 0 :(得分:19)
$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);");
答案 1 :(得分:4)
SELECT *
FROM patient_db
WHERE MATCH ( Name, id_number )
AGAINST ("Firstname Lastname" IN BOOLEAN MODE);
双引号很重要。这就是字面上的“名字姓氏”。 你不需要百分号。
如果你寻找“名字blahblahblah Lastname blahblah”,AGAINST()
条款必须如下:
AGAINST ('+Firstname +Lastname' IN BOOLEAN MODE);
请查看MySQL docs on full text search以获取更多信息。
另一件事:为什么你的匹配中有id_number
列?