Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL全文搜索在哪里_Mysql_Sql_Database_Mariadb - Fatal编程技术网

MySQL全文搜索在哪里

MySQL全文搜索在哪里,mysql,sql,database,mariadb,Mysql,Sql,Database,Mariadb,我正在尝试使用MySQL创建全文搜索。我的问题是这样的 SELECT * FROM customers WHERE MATCH (name, first_name, street, city) AGAINST ('$parameter' IN boolean MODE) 例如,如果我查询Peter一切正常。但是如果我只键入搜索字符串的开头(Pete),我会得到一个空结果 如何获取包含字符串的行,而不仅仅是字符串完全相同的行?使用自然语

我正在尝试使用MySQL创建全文搜索。我的问题是这样的

SELECT * FROM customers WHERE MATCH (name, first_name, street, city)
                              AGAINST ('$parameter' IN boolean MODE)
例如,如果我查询
Peter
一切正常。但是如果我只键入搜索字符串的开头(
Pete
),我会得到一个空结果


如何获取包含字符串的行,而不仅仅是字符串完全相同的行?

使用
自然语言模式

SELECT * FROM customers WHERE MATCH (name, first_name, street, city) AGAINST ('$parameter' IN NATURAL LANGUAGE MODE)
自然语言全文搜索将搜索字符串解释为自由文本(自然人类语言),不需要特殊运算符。如果给定或未给定IN natural language MODE修饰符(请参见以下语法),则全文搜索是自然语言搜索。函数的作用是:根据文本集合(全文索引中包含的一组一列或多列)搜索字符串。对于表中的每一行,MATCH()返回一个相关值;也就是说,搜索字符串(作为函数的参数)与MATCH()列表中指定的列中该行的文本之间的相似性度量

通配符
*
可以放在字符串的末尾,以匹配以它开头的任何内容。那会匹配的

Pete
Peter
petechiae
peteforamerica
petethecatbooks
péteux

非常感谢。但例如,我有一个值为'Peter'的条目,如果搜索字符串也是'Peter',我只会得到一个结果。如果我输入'Pete'或'eter'等等,我还需要一个结果。是的,我试过了
Pete
Peter
petechiae
peteforamerica
petethecatbooks
péteux