我從來沒有真正聽到這個直接回答,我只需要全文搜索一對夫婦與列多個單詞「姓」MySQL全文索引搜索多個單詞
$sql = mysql_query("SELECT * FROM
patient_db
WHERE MATCH (Name, id_number)
AGAINST ('% $term %' IN BOOLEAN MODE);");
但它無法運行查詢我是否在此輸入多個單詞。
我從來沒有真正聽到這個直接回答,我只需要全文搜索一對夫婦與列多個單詞「姓」MySQL全文索引搜索多個單詞
$sql = mysql_query("SELECT * FROM
patient_db
WHERE MATCH (Name, id_number)
AGAINST ('% $term %' IN BOOLEAN MODE);");
但它無法運行查詢我是否在此輸入多個單詞。
$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);");
SELECT *
FROM patient_db
WHERE MATCH (Name, id_number)
AGAINST ("Firstname Lastname" IN BOOLEAN MODE);
雙引號是重要的。這從字面上尋找短語「名字姓氏」。 你不需要百分號。
如果您尋找「名字blahblahblah姓blahblah」,該AGAINST()
子句看起來像這樣:
AGAINST ('+Firstname +Lastname' IN BOOLEAN MODE);
有看MySQL docs on full text search以獲得更多信息。
另一件事:爲什麼你的比賽中有id_number
列?
嗨對不起,我張貼之前,我昨天晚上去睡覺了。這仍然不適用於我,我只有一個名爲$ term的搜索字段,並且第一個和最後一個名稱都在同一個mySQL列中 – iamwhitebox
如果您可以搜索的術語數量有限,是否有人能夠啓發我匹配查詢?在這個答案的例子中,你有third_word,它也在我自己的查詢中工作,但是當我把+ fourth_word放在列中時,即使它存在於列中,它也會返回空結果。 – vincent
「確切短語」並不意味着沒有任何符號的確切短語(+/-),它將被視爲OR。在全文檢索中沒有確切的短語,只有全部單詞,一些單詞,沒有一個單詞。 – Gamesh
這是改變了5年的時間 – Vineet1982