mysql 全文搜索多个单词

2022-08-31 00:36:22

我从来没有真正听到过这个直接的答案,我只需要用全文搜索几个带有多个单词“名字姓氏”的列

$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);

双引号很重要。这从字面上查找短语“名字姓氏”。您不需要百分比符号。

如果你寻找“名字blahblahblah Lastname blahblah”,该子句必须看起来像这样:AGAINST()

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

查看有关全文搜索的MySQL文档以获取更多信息。

另一件事:为什么你的比赛中有专栏?id_number


推荐