Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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全文搜索顺序(按相关性)_Php_Mysql_Sql Order By_Relevance - Fatal编程技术网

Php MYSQL全文搜索顺序(按相关性)

Php MYSQL全文搜索顺序(按相关性),php,mysql,sql-order-by,relevance,Php,Mysql,Sql Order By,Relevance,我正试图让我的全文搜索按相关性排序。这是我的代码,如果按删除顺序,它可以工作,但不按相关性排序。我已经试过了,它确实成功了,所以根本没有发现任何结果。。。有什么想法吗 $query_for_result=mysql_query(" SELECT * FROM Assets WHERE MATCH (`Badge`,`First Name`,`Last Name`,`Service Tag`,`Asset Tag`) AGAINST ('".$query."*' IN

我正试图让我的全文搜索按相关性排序。这是我的代码,如果按删除顺序,它可以工作,但不按相关性排序。我已经试过了,它确实成功了,所以根本没有发现任何结果。。。有什么想法吗

$query_for_result=mysql_query("
     SELECT * FROM Assets WHERE MATCH 
    (`Badge`,`First Name`,`Last Name`,`Service Tag`,`Asset Tag`)
     AGAINST ('".$query."*' IN BOOLEAN MODE) and
   `deleted` = '0'  ORDER BY relevance DESC");
编辑*

发件人:

它们不会自动按相关性降低的顺序对行进行排序。您可以从前面的查询结果中看到:相关性最高的行是两次包含“MySQL”的行,但它列在最后,而不是第一行

这就解释了为什么没有按排序的
就不能按相关性排序。现在,为了能够按相关性排序,您需要定义它:

SELECT *, MATCH (`Badge`,`First Name`,`Last Name`,`Service Tag`,`Asset Tag`) as relevance
WHERE MATCH AGAINST ('".$query."*' IN BOOLEAN MODE) and `deleted` = '0'
ORDER BY relevance DESC

谢谢,但出于某种原因,这仍然不会导致任何行found@user1548769您可以共享不返回结果的查询吗?@user1548769您的其余代码似乎很好。你能在
mysql\u查询之前
echo
你发送给mysql的查询吗?
query\u for\u result=mysql\u查询(“SELECT*,MATCH(
Badge
First Name
Last Name
服务标签
资产标签
)和(““”)”)$query。“'在布尔模式下,''作为1和匹配(
徽章
名字
姓氏
服务标签
资产标签
)与(''在布尔模式下为$query.'')的资产的相关性,并且
根据相关性说明删除了'='0'顺序”);`谢谢你的帮助不要在全文索引上使用过滤器。
while($data_fetch=mysql_fetch_array($query_for_result))
{

print '<h3>';   
print "<a href=\"modify.php?id=" . $data_fetch['id'] . "\">" . $data_fetch['First Name']  . ' ' . $data_fetch['Last Name'] . "</a>";
print '<br/><b>Badge:</b> '. $data_fetch['Badge'];
print '<br/> <b>Service Tag:</b> '. $data_fetch['Service Tag'];
print ' <b>Asset Tag:</b> '. $data_fetch['Asset Tag'];
print '<br/> <b>Status:</b> '. $data_fetch['Status'];
print '<br/><b>Employee Status: </b>';
    if( $data_fetch['Employee Status'] == 'Active' ){
print '<font color="#32CD32">' . $data_fetch['Employee Status'] . '</font>';
    }
elseif( $data_fetch['Employee Status'] == 'Terminated' ){
print '<font color="red">' . $data_fetch['Employee Status'] . '</font>';}
print '<br/> <b>Last Modified:</b> '. $data_fetch['Last Modified'];
print "<span> </span>";
print '</h3>';
print '<br/><p>' ; 

}
$query_for_result=mysql_query("SELECT  *, MATCH 
(`Badge`,`First Name`,`Last     Name`,`Service Tag`,`Asset Tag`) 
AGAINST ('".$query."'IN BOOLEAN MODE) AS Relevance FROM Assets WHERE 1 AND MATCH 
(`Badge`,`First Name`,`Last Name`,`Service Tag`,`Asset Tag`)
AGAINST ('".$query."' IN BOOLEAN MODE) and
 `deleted` = '0' ORDER BY Relevance DESC "); 
SELECT *, MATCH (`Badge`,`First Name`,`Last Name`,`Service Tag`,`Asset Tag`) as relevance
WHERE MATCH AGAINST ('".$query."*' IN BOOLEAN MODE) and `deleted` = '0'
ORDER BY relevance DESC