繁体   English   中英

mysql FULLTEXT 搜索多个单词

[英]mysql FULLTEXT search multiple words

我从来没有真正听到过关于这个的直接答案,我只需要 FULLTEXT 搜索带有多个单词“Firstname Lastname”的几列

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM