mysql FULLTEXT搜索多个单词

iam*_*box 13 php mysql search

我从来没有真正听过这个问题的直接答案,我只需要FULLTEXT搜索几个列,其中包含多个单词"Firstname Lastname"

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

但如果我在这里输入多个单词,则无法运行查询.

Vin*_*982 20

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

如果你想做精确搜索:

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


Jac*_*cob 6

SELECT * 
FROM patient_db 
WHERE MATCH ( Name, id_number ) 
      AGAINST ("Firstname Lastname" IN BOOLEAN MODE);
Run Code Online (Sandbox Code Playgroud)

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

如果您查找“Firstname blahblahblah Lastname blahblah”,则该AGAINST()子句必须如下所示:

AGAINST ('+Firstname +Lastname' IN BOOLEAN MODE);
Run Code Online (Sandbox Code Playgroud)

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

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