我正在尝试用MySQL创建一个全文搜索。我的查询如下所示。
SELECT * FROM customers WHERE MATCH (name, first_name, street, city)
AGAINST ('$parameter' IN boolean MODE)
例如,如果我查询Peter
,一切都很正常,但如果我只输入搜索字符串的开头(Pete
),我得到的结果是空的。
如何获取包含我的字符串的行,而不仅仅是字符串完全相同的行?
2条答案
按热度按时间ajsxfq5m1#
使用
NATURAL LANGUAGE MODE
自然语言全文搜索将搜索字符串解释为自由文本(自然人类语言),且不需要特殊运算子。如果IN NATURAL LANGUAGE MODE修饰词(请参阅以下语法)是否给定. MATCH()函数在文本集合中搜索字符串(FULLTEXT索引中包含的一个或多个列的集合。)。对于表中的每一行,MATCH()返回一个相关性值;也就是说,搜索字符串(作为AGAINST()函数的参数给出)与MATCH()列表中指定的列的行中的文本之间的相似性度量
sgtfey8w2#
通配符
*
可以放在字符串的 end 以匹配以它开头的任何字符串。