Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.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
Php MysqL:在多个列上执行全文搜索并100%匹配_Php_Mysql - Fatal编程技术网

Php MysqL:在多个列上执行全文搜索并100%匹配

Php MysqL:在多个列上执行全文搜索并100%匹配,php,mysql,Php,Mysql,我想对MySQL数据库中的多个列进行全文搜索,只使用一个输入字段来搜索地址 到目前为止,我的代码可以正常工作,但我也得到了返回的行,其中并不是所有的搜索词都存在 SELECT *, ((1.3 * (MATCH (city) AGAINST ('+$search*' IN BOOLEAN MODE))) + (0.6 * (MATCH (name, zip, str) AGAINST ('+$search*' IN BOOLEAN MODE)))) AS relevance FROM servi

我想对MySQL数据库中的多个列进行全文搜索,只使用一个输入字段来搜索地址

到目前为止,我的代码可以正常工作,但我也得到了返回的行,其中并不是所有的搜索词都存在

SELECT *, ((1.3 * (MATCH (city) AGAINST ('+$search*' IN BOOLEAN MODE)))
+ (0.6 * (MATCH (name, zip, str) AGAINST ('+$search*' IN BOOLEAN MODE)))) AS relevance
FROM service
WHERE (MATCH (name, city, zip, str) AGAINST ('+$search*' IN BOOLEAN MODE)) 
HAVING relevance > 0 ORDER BY relevance DESC LIMIT 10
这可能会返回类似于:

$search = "Anderson City ZIP"

1. Anderson, City, ZIP, street x
2. Anderson, City, ZIP, street y
3. Smith, City, ZIP, street x
所以第3行是错误的,因为它不包含
Anderson
,而是
Smith

我已经尝试在
$search
字符串(
Anderson City ZIP-->+Anderson+City+ZIP
)中添加+运算符,但结果通常不会显示任何内容


是否可以只返回100%匹配的行?

加号是一件好事,但您必须确保正在搜索的字符串之一不在表中超过50%的行中


也考虑使用引号来匹配完整的表达式:+“AndersSouthZip”

不幸的是这没有帮助。第一:*通配符不再有效!?第二:如果我输入名字,我会得到一个结果,但一旦我添加城市,我就不会得到任何结果。是否可以关闭“停止字行为”?我认为我的桌子足够小,可以处理它(从性能的角度)。